
- Moved the various tabs on the draft view to their own views. - Renames modes to views - Started to group various aspects of the workbench state under `_state` in the gist to prevent it from getting all mixed up with the core settings. - Updated events title to make it more clear not all events might be present - Removed valid state in measurements input since it was only getting updated on keyboard input but now when preloading measurements (which it does now)
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import SvgWrapper from './svg-wrapper'
|
|
import Error from './error.js'
|
|
import { capitalize } from 'shared/utils.js'
|
|
import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch"
|
|
|
|
const LabDraft = props => {
|
|
const { app, draft, pattern, gist, updateGist, unsetGist } = props
|
|
if (!draft) return null
|
|
|
|
if (gist?.renderer === 'svg') {
|
|
// Render as SVG
|
|
let svg
|
|
try { svg = draft.render() }
|
|
catch(error) {
|
|
console.log('Failed to render pattern', error)
|
|
return <Error error={error} {...props} />
|
|
}
|
|
return <div dangerouslySetInnerHTML={{ __html: svg }} />
|
|
}
|
|
|
|
// Render as React
|
|
let patternProps = {}
|
|
try { patternProps = draft.draft().getRenderProps() }
|
|
catch(error) {
|
|
console.log('Failed to get render props for pattern', error)
|
|
return <Error error={error} {...props} />
|
|
}
|
|
|
|
return (
|
|
<div>
|
|
<SvgWrapper
|
|
draft={draft}
|
|
patternProps={patternProps}
|
|
gist={gist}
|
|
updateGist={updateGist}
|
|
unsetGist={unsetGist}
|
|
app={app}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default LabDraft
|