diff --git a/packages/freesewing.shared/components/workbench/default-settings.js b/packages/freesewing.shared/components/workbench/default-settings.js index 33ad9828e74..445ed2c908e 100644 --- a/packages/freesewing.shared/components/workbench/default-settings.js +++ b/packages/freesewing.shared/components/workbench/default-settings.js @@ -11,7 +11,6 @@ const defaultSettings = { renderer: 'react', embed: true, debug: true, - xray: false, } export default defaultSettings diff --git a/packages/freesewing.shared/components/workbench/draft/part/index.js b/packages/freesewing.shared/components/workbench/draft/part/index.js index 7fe4293367e..34e16e72ca4 100644 --- a/packages/freesewing.shared/components/workbench/draft/part/index.js +++ b/packages/freesewing.shared/components/workbench/draft/part/index.js @@ -6,8 +6,8 @@ import { getProps } from '../utils' const XrayPart = props => { // Don't bother if this is the only part on display if (props.gist.only && props.gist.only.length === 1) return null - const i = props.gist.xray?.reveal - ? Object.keys(props.gist.xray.reveal).indexOf(props.partName)%10 + const i = props.gist._state?.xray?.reveal + ? Object.keys(props.gist._state?.xray.reveal).indexOf(props.partName)%10 : 0 const { topLeft, bottomRight } = props.part @@ -40,7 +40,11 @@ const Part = props => { return ( {grid} - {props.gist?.xray?.reveal?.[partName] && } + { + props.gist?._state?.xray?.enabled && + props.gist?._state?.xray?.reveal?.[partName] + && + } {Object.keys(part.paths).map((pathName) => ( ( {...getProps(props.path)} className="opacity-0 stroke-3xl stroke-contrast hover:opacity-25 hover:cursor-pointer" onClick={() => props.updateGist( - ['xray', 'parts', props.partName, 'paths', props.pathName], + ['_state', 'xray', 'parts', props.partName, 'paths', props.pathName], 1 )} /> @@ -26,7 +26,7 @@ const Path = props => { ) if (path.attributes.get('data-text')) output.push() - if (props.gist.xray) output.push() + if (props.gist._state?.xray?.enabled) output.push() return output } diff --git a/packages/freesewing.shared/components/workbench/draft/point/index.js b/packages/freesewing.shared/components/workbench/draft/point/index.js index 3c38b1367e1..07affd5502c 100644 --- a/packages/freesewing.shared/components/workbench/draft/point/index.js +++ b/packages/freesewing.shared/components/workbench/draft/point/index.js @@ -6,7 +6,7 @@ const RevealPoint = props => { const r = 15 * props.gist.scale const { x, y } = props.point const { topLeft, bottomRight } = props.part - const i = Object.keys(props.gist.xray.reveal[props.partName].points).indexOf(props.pointName)%10 + const i = Object.keys(props.gist._state.xray.reveal[props.partName].points).indexOf(props.pointName)%10 const classes = `stroke-sm stroke-color-${i} stroke-dashed` return ( @@ -93,7 +93,7 @@ const ActiveXrayPoint = props => { const r = 15 * props.gist.scale const { x, y } = props.point const { topLeft, bottomRight } = props.part - const i = Object.keys(props.gist.xray.parts[props.partName].points).indexOf(props.pointName)%10 + const i = Object.keys(props.gist._state.xray.parts[props.partName].points).indexOf(props.pointName)%10 const classes = `stroke-sm stroke-color-${i} stroke-dashed` const posProps = { id, @@ -117,12 +117,12 @@ const PassiveXrayPoint = props => ( cy={props.point.y} r={7.5 * props.gist.scale} className="opacity-0 stroke-lining fill-lining hover:opacity-25 hover:cursor-pointer" - onClick={props.gist.xray?.parts?.[props.partName]?.points?.[props.pointName] + onClick={props.gist._state.xray?.parts?.[props.partName]?.points?.[props.pointName] ? () => props.unsetGist( - ['xray', 'parts', props.partName, 'points', props.pointName] + ['_state', 'xray', 'parts', props.partName, 'points', props.pointName] ) : () => props.updateGist( - ['xray', 'parts', props.partName, 'points', props.pointName], + ['_state', 'xray', 'parts', props.partName, 'points', props.pointName], 1 ) } @@ -134,14 +134,16 @@ const PassiveXrayPoint = props => ( const Point = props => { const { point, pointName, partName, gist } = props const output = [] - // Passive indication for points - if (gist.xray) output.push() - // Active indication for points (point that have been clicked on) - if (gist.xray?.parts?.[partName]?.points?.[pointName]) - output.push() - // Reveal (based on clicking the seach icon in sidebar - if (gist.xray?.reveal?.[partName]?.points?.[pointName]) - output.push() + if (gist._state?.xray?.enabled) { + // Passive indication for points + output.push() + // Active indication for points (point that have been clicked on) + if (gist._state?.xray?.parts?.[partName]?.points?.[pointName]) + output.push() + // Reveal (based on clicking the seach icon in sidebar + if (gist._state?.xray?.reveal?.[partName]?.points?.[pointName]) + output.push() + } // Render text if (point.attributes && point.attributes.get('data-text')) output.push() diff --git a/packages/freesewing.shared/components/workbench/layout/print/index.js b/packages/freesewing.shared/components/workbench/layout/print/index.js index b56e172035c..2e39cb1e498 100644 --- a/packages/freesewing.shared/components/workbench/layout/print/index.js +++ b/packages/freesewing.shared/components/workbench/layout/print/index.js @@ -1,3 +1,4 @@ +import { useEffect } from 'react' import { useTranslation } from 'next-i18next' import Settings from './settings' import Draft from '../draft' @@ -9,6 +10,14 @@ const addPages = (gist) => { const PrintLayout = props => { + + useEffect(() => { + if (props.gist?._state?.xray?.enabled) props.updateGist( + ['_state', 'xray', 'enabled'], + false + ) + }, []) + const { t } = useTranslation(['workbench']) const draft = new props.pattern(props.gist).use(pluginBuilder( diff --git a/packages/freesewing.shared/components/workbench/layout/print/settings.js b/packages/freesewing.shared/components/workbench/layout/print/settings.js index 4d0dfb09c22..f7c82d616ce 100644 --- a/packages/freesewing.shared/components/workbench/layout/print/settings.js +++ b/packages/freesewing.shared/components/workbench/layout/print/settings.js @@ -12,7 +12,7 @@ const PrintLayoutSettings = props => {
-
{JSON.stringify(props.gist._state, null ,2)}
+
{JSON.stringify(props.gist, null ,2)}
) } diff --git a/packages/freesewing.shared/components/workbench/menu/xray/disable.js b/packages/freesewing.shared/components/workbench/menu/xray/disable.js index 3975f4b7dea..0b4f37782ae 100644 --- a/packages/freesewing.shared/components/workbench/menu/xray/disable.js +++ b/packages/freesewing.shared/components/workbench/menu/xray/disable.js @@ -6,7 +6,7 @@ const DisableXray = props => { return (
  • - props.updateGist(['xray', 'enabled'], false)}> + props.updateGist(['_state', 'xray', 'enabled'], false)}> diff --git a/packages/freesewing.shared/components/workbench/menu/xray/index.js b/packages/freesewing.shared/components/workbench/menu/xray/index.js index 9504fa4261a..0997f0cefa6 100644 --- a/packages/freesewing.shared/components/workbench/menu/xray/index.js +++ b/packages/freesewing.shared/components/workbench/menu/xray/index.js @@ -12,7 +12,7 @@ const Xray = props => { return (
    }> - {props.gist?.xray?.enabled + {props.gist?._state?.xray?.enabled ? ( <> @@ -24,7 +24,7 @@ const Xray = props => { <> @@ -35,13 +35,13 @@ const Xray = props => { ) } - {props.gist?.xray?.enabled && ( + {props.gist?._state?.xray?.enabled && (
      { - props.gist?.xray?.parts && - Object.keys(props.gist.xray.parts).map(partName => ) + props.gist?._state?.xray?.parts && + Object.keys(props.gist._state?.xray.parts).map(partName => ) }
    )} diff --git a/packages/freesewing.shared/components/workbench/menu/xray/list.js b/packages/freesewing.shared/components/workbench/menu/xray/list.js index df3300fc6ed..381b7efb930 100644 --- a/packages/freesewing.shared/components/workbench/menu/xray/list.js +++ b/packages/freesewing.shared/components/workbench/menu/xray/list.js @@ -17,7 +17,7 @@ const XrayList = props => { const title = t(`parts:${props.partName}`) + ` (${props.partName})` - const part = props.gist.xray.parts[props.partName] + const part = props.gist._state.xray.parts[props.partName] // Is this the only part on display? const only = ( @@ -47,7 +47,7 @@ const XrayList = props => { @@ -63,7 +63,7 @@ const XrayList = props => { @@ -81,16 +81,16 @@ const XrayList = props => {