1
0
Fork 0
freesewing/sites/freesewing.shared/components/workbench/draft/index.js

41 lines
1 KiB
JavaScript
Raw Normal View History

2022-01-29 14:51:13 +01:00
import SvgWrapper from './svg-wrapper'
2022-01-28 16:57:07 +01:00
import Error from './error.js'
import Robot from 'shared/components/robot/index.js'
2022-01-25 11:22:09 +01:00
2022-01-28 16:57:07 +01:00
const LabDraft = props => {
const { app, draft, pattern, gist, updateGist, unsetGist, feedback } = props
2022-01-30 15:14:44 +01:00
if (!draft) return null
2022-01-28 16:57:07 +01:00
// Render as SVG
2022-01-30 15:14:44 +01:00
if (gist?.renderer === 'svg') {
let svg
try { svg = draft.render() }
catch(error) {
console.log('Failed to render pattern', error)
return <Error error={error} {...props} />
}
2022-01-28 16:57:07 +01:00
return <div dangerouslySetInnerHTML={{ __html: svg }} />
2022-01-30 15:14:44 +01:00
}
2022-01-28 16:57:07 +01:00
// Render as React
let patternProps = {}
try { patternProps = draft.getRenderProps() }
2022-01-28 16:57:07 +01:00
catch(error) {
console.log('Failed to get render props for pattern', error)
2022-01-30 15:14:44 +01:00
return <Error error={error} {...props} />
2022-01-28 16:57:07 +01:00
}
2022-01-25 11:22:09 +01:00
return (
<>
{(!patternProps || patternProps.events.error.length > 0)
2022-03-24 11:35:55 +01:00
? <Error {...{ draft, patternProps, updateGist }} />
: null
}
<SvgWrapper {...{ draft, patternProps, gist, updateGist, unsetGist, app, feedback }} />
</>
2022-01-25 11:22:09 +01:00
)
}
export default LabDraft