2021-12-24 17:13:48 +01:00
|
|
|
import React, { useState } from 'react'
|
2022-09-22 09:05:20 +02:00
|
|
|
import { Examples } from '@freesewing/examples'
|
|
|
|
import { Rendertest } from '@freesewing/rendertest'
|
|
|
|
import { Tutorial } from '@freesewing/tutorial'
|
|
|
|
import Svg from '../../workbench/draft/svg'
|
|
|
|
import Defs from '../../workbench/draft/defs'
|
|
|
|
import Stack from '../../workbench/draft/stack'
|
|
|
|
|
|
|
|
export const examplePatterns = {
|
|
|
|
examples: Examples,
|
|
|
|
//rendertest: Rendertest,
|
|
|
|
//tutorial: Tutorial,
|
|
|
|
}
|
|
|
|
|
|
|
|
const Example = ({
|
|
|
|
app,
|
|
|
|
pattern='examples',
|
|
|
|
part,
|
|
|
|
gist={
|
|
|
|
settings: {
|
|
|
|
options: {},
|
|
|
|
measurements: { head: 390 },
|
2022-09-22 10:09:46 +02:00
|
|
|
},
|
|
|
|
_state: { xray: { enabled: false } }
|
2022-09-22 09:05:20 +02:00
|
|
|
},
|
|
|
|
updateGist,
|
|
|
|
unsetGist,
|
|
|
|
showInfo,
|
|
|
|
feedback,
|
|
|
|
xray=false,
|
2022-09-22 10:09:46 +02:00
|
|
|
measurements = { head: 390 },
|
2022-09-22 09:05:20 +02:00
|
|
|
hasRequiredMeasurements=true,
|
|
|
|
}) => {
|
|
|
|
const Pattern = examplePatterns[pattern]
|
2022-09-22 10:09:46 +02:00
|
|
|
if (xray) {
|
|
|
|
gist._state.xray.enabled = xray
|
|
|
|
gist.settings.margin = 20
|
|
|
|
}
|
2022-09-22 09:05:20 +02:00
|
|
|
if (part !== '') gist.settings.only = [ "examples."+part]
|
|
|
|
const draft = new Pattern(gist.settings)
|
2022-09-22 10:09:46 +02:00
|
|
|
const patternProps = draft.draft().getRenderProps()
|
2022-09-22 09:05:20 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<Svg {...patternProps} embed={true}>
|
|
|
|
<Defs {...patternProps} />
|
|
|
|
<style>{`:root { --pattern-scale: 1} ${patternProps.svg.style}`}</style>
|
|
|
|
<g>
|
|
|
|
{Object.keys(patternProps.stacks).map((stackName) => (
|
|
|
|
<Stack {...{ app, gist, updateGist, unsetGist, showInfo, patternProps }}
|
|
|
|
key={stackName}
|
|
|
|
stackName={stackName}
|
|
|
|
stack={patternProps.stacks[stackName]}
|
|
|
|
/>
|
|
|
|
))}
|
|
|
|
</g>
|
|
|
|
</Svg>
|
|
|
|
)
|
|
|
|
}
|
2021-12-24 17:13:48 +01:00
|
|
|
|
2022-09-22 09:05:20 +02:00
|
|
|
export default Example
|