diff --git a/sites/shared/components/workbench/index.mjs b/sites/shared/components/workbench/index.mjs
index ec3a5c603dc..f45c36f0b66 100644
--- a/sites/shared/components/workbench/index.mjs
+++ b/sites/shared/components/workbench/index.mjs
@@ -38,6 +38,7 @@ export const Workbench = ({ design, Design, baseSettings, DynamicDocs, from }) =
// Effect
useEffect(() => {
// Force re-render when baseSettings changes. Required when they are loaded async.
+ console.log('in effect')
setSettings({ ...baseSettings, embed: true })
}, [baseSettings])
@@ -54,11 +55,11 @@ export const Workbench = ({ design, Design, baseSettings, DynamicDocs, from }) =
if (error)
return (
<>
-
+
{error}
>
)
- console.log(baseSettings)
+
// Deal with each view
const viewProps = {
account,
@@ -102,7 +103,7 @@ export const Workbench = ({ design, Design, baseSettings, DynamicDocs, from }) =
return (
<>
-
+
{viewContent}
>
)
diff --git a/sites/shared/components/workbench/menus/core-settings/config.mjs b/sites/shared/components/workbench/menus/core-settings/config.mjs
index 7998263f73a..928535bfcad 100644
--- a/sites/shared/components/workbench/menus/core-settings/config.mjs
+++ b/sites/shared/components/workbench/menus/core-settings/config.mjs
@@ -111,18 +111,4 @@ export const loadSettingsConfig = ({
step: 1,
emoji: '🔲',
},
- renderer: {
- control: 4, // Show when control > 3
- list: ['react', 'svg'],
- choiceTitles: {
- react: 'renderWithReact',
- svg: 'renderWithCore',
- },
- valueTitles: {
- react: 'React',
- svg: 'SVG',
- },
- dflt: 'react',
- emoji: '🚀',
- },
})
diff --git a/sites/shared/components/workbench/menus/core-settings/core-settings.en.yaml b/sites/shared/components/workbench/menus/core-settings/core-settings.en.yaml
index efb9285b3cd..9a273a0d36d 100644
--- a/sites/shared/components/workbench/menus/core-settings/core-settings.en.yaml
+++ b/sites/shared/components/workbench/menus/core-settings/core-settings.en.yaml
@@ -19,12 +19,6 @@ margin.t: Margin
margin.d: Controls the margin around pattern parts
scale.t: Scale
scale.d: Controls the overall line width, font size, and other elements that do not scale with the pattern's measurements
-renderer.t: Render Engine
-renderer.d: Controls how the pattern is rendered (drawn) on the screen
-renderWithReact.t: Render with FreeSewing's React components
-renderWithReact.d: Render as SVG through our React components. Allows interactivity and is optimized for screen. Use this if you are not sure what to pick.
-renderWithCore.t: Render with Freesewing's Core library
-renderWithCore.d: Render directly to SVG from Core. Allows no interactivity and is optimized for print. Use this if you want to know what it will look like when exported.
de.t: German
de.d: Use this to generate a German pattern
en.t: English
diff --git a/sites/shared/components/workbench/menus/core-settings/index.mjs b/sites/shared/components/workbench/menus/core-settings/index.mjs
index 65fc99e180e..8e85544d2c8 100644
--- a/sites/shared/components/workbench/menus/core-settings/index.mjs
+++ b/sites/shared/components/workbench/menus/core-settings/index.mjs
@@ -62,7 +62,7 @@ const inputs = {
units: UnitsSettingInput,
}
-const CoreTitle = ({ name, t, changed, current = null, open = false, emoji = '' }) => (
+export const CoreTitle = ({ name, t, changed, current = null, open = false, emoji = '' }) => (
+
+ >
+)
+
+export const RendererSettingInput = ({ name, config, current, update, t }) => (
+ ({
+ key,
+ title: key,
+ }))}
+ />
+)
+
+export const XRaySettingInput = (props) =>
diff --git a/sites/shared/components/workbench/menus/xray/list.mjs b/sites/shared/components/workbench/menus/ui-settings/list.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/list.mjs
rename to sites/shared/components/workbench/menus/ui-settings/list.mjs
diff --git a/sites/shared/components/workbench/menus/xray/log.mjs b/sites/shared/components/workbench/menus/ui-settings/log.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/log.mjs
rename to sites/shared/components/workbench/menus/ui-settings/log.mjs
diff --git a/sites/shared/components/workbench/menus/xray/path-ops.mjs b/sites/shared/components/workbench/menus/ui-settings/path-ops.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/path-ops.mjs
rename to sites/shared/components/workbench/menus/ui-settings/path-ops.mjs
diff --git a/sites/shared/components/workbench/menus/xray/path.mjs b/sites/shared/components/workbench/menus/ui-settings/path.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/path.mjs
rename to sites/shared/components/workbench/menus/ui-settings/path.mjs
diff --git a/sites/shared/components/workbench/menus/xray/point.mjs b/sites/shared/components/workbench/menus/ui-settings/point.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/point.mjs
rename to sites/shared/components/workbench/menus/ui-settings/point.mjs
diff --git a/sites/shared/components/workbench/menus/xray/reset.mjs b/sites/shared/components/workbench/menus/ui-settings/reset.mjs
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/reset.mjs
rename to sites/shared/components/workbench/menus/ui-settings/reset.mjs
diff --git a/sites/shared/components/workbench/menus/ui-settings/ui-settings.en.yaml b/sites/shared/components/workbench/menus/ui-settings/ui-settings.en.yaml
new file mode 100644
index 00000000000..f5c80c53824
--- /dev/null
+++ b/sites/shared/components/workbench/menus/ui-settings/ui-settings.en.yaml
@@ -0,0 +1,11 @@
+uiSettings.t: UI Preferences
+uiSettings.d: These preferences control the UI (User Interface) aspects of our online pattern drafting environment.
+renderer.t: Render Engine
+renderer.d: Controls how the pattern is rendered (drawn) on the screen
+renderWithReact.t: Render with FreeSewing's React components
+renderWithReact.d: Render as SVG through our React components. Allows interactivity and is optimized for screen. Use this if you are not sure what to pick.
+renderWithCore.t: Render with Freesewing's Core library
+renderWithCore.d: Render directly to SVG from Core. Allows no interactivity and is optimized for print. Use this if you want to know what it will look like when exported.
+control.t: User Experience
+control.d: Which user experience do you prefer? Please note that this is an account setting, so it will impact the entire website.
+
diff --git a/sites/shared/components/workbench/menus/ui-settings/values.mjs b/sites/shared/components/workbench/menus/ui-settings/values.mjs
new file mode 100644
index 00000000000..931d900223c
--- /dev/null
+++ b/sites/shared/components/workbench/menus/ui-settings/values.mjs
@@ -0,0 +1,10 @@
+import { Difficulty } from 'shared/components/designs/difficulty.mjs'
+
+const ListValue = ({ current, t, config, changed }) =>
+ changed
+ ? t(`ui-settings:${config.valueTitles[current]}`)
+ : t(`ui-settings:${config.valueTitles[config.dflt]}`)
+
+export const RendererSettingValue = ListValue
+export const XRaysValue = ListValue
+export const ControlSettingValue = ({ control }) =>
diff --git a/sites/shared/components/workbench/menus/xray/xray.en.yaml b/sites/shared/components/workbench/menus/ui-settings/xray.en.yaml
similarity index 100%
rename from sites/shared/components/workbench/menus/xray/xray.en.yaml
rename to sites/shared/components/workbench/menus/ui-settings/xray.en.yaml
diff --git a/sites/shared/components/workbench/menus/xray/index.mjs b/sites/shared/components/workbench/menus/xray/index.mjs
deleted file mode 100644
index 40cef62d02b..00000000000
--- a/sites/shared/components/workbench/menus/xray/index.mjs
+++ /dev/null
@@ -1,35 +0,0 @@
-import { XrayIcon } from 'shared/components/icons.mjs'
-//import { ConsoleLog } from './log.mjs'
-//import { XrayReset } from './reset.mjs'
-//import { XrayList } from './list.mjs'
-import { useTranslation } from 'next-i18next'
-import { Popout } from 'shared/components/popout.mjs'
-
-export const ns = ['xray']
-
-export const XrayMenu = ({ design, update, settings, ui, account, control }) => {
- const { t } = useTranslation(ns)
-
- if (ui.renderer !== 'react' || control < 4) return null
-
- const toggleXray = () => update.ui(['xray', 'enabled'], ui?.xray?.enabled ? false : true)
-
- return (
- <>
-
- {control > 4 ? (
-
- ) : (
- <>
-
-
- {t('xray:xrayPattern')}
-
-
{t('core-settings:coreSettings.d')}
- >
- )}
-
- Implement X-Ray
- >
- )
-}
diff --git a/sites/shared/components/workbench/pattern/index.mjs b/sites/shared/components/workbench/pattern/index.mjs
index e882f1df999..e16843b701d 100644
--- a/sites/shared/components/workbench/pattern/index.mjs
+++ b/sites/shared/components/workbench/pattern/index.mjs
@@ -5,7 +5,7 @@ export const Pattern = ({ pattern, setView, settings, ui, update }) => {
// Render as SVG
return ui.renderer === 'svg' ? (
-
+
) : (
)
diff --git a/sites/shared/components/workbench/views/draft/menu.mjs b/sites/shared/components/workbench/views/draft/menu.mjs
index 3802f839392..46fe53ed2ed 100644
--- a/sites/shared/components/workbench/views/draft/menu.mjs
+++ b/sites/shared/components/workbench/views/draft/menu.mjs
@@ -6,9 +6,9 @@ import {
CoreSettings,
ns as coreMenuNs,
} from 'shared/components/workbench/menus/core-settings/index.mjs'
-import { XrayMenu, ns as xrayNs } from 'shared/components/workbench/menus/xray/index.mjs'
+import { UiSettings, ns as uiNs } from 'shared/components/workbench/menus/ui-settings/index.mjs'
-export const ns = [...coreMenuNs, ...designMenuNs, ...xrayNs]
+export const ns = [...coreMenuNs, ...designMenuNs, ...uiNs]
export const DraftMenu = ({
design,
@@ -38,7 +38,7 @@ export const DraftMenu = ({
)
}
diff --git a/sites/shared/components/workbench/workbench.en.yaml b/sites/shared/components/workbench/workbench.en.yaml
index 58f9916b237..c6dc7943105 100644
--- a/sites/shared/components/workbench/workbench.en.yaml
+++ b/sites/shared/components/workbench/workbench.en.yaml
@@ -6,7 +6,7 @@ cutLayout: Cut Layout
save: Save
export: Export
edit: Edit
-clear: Clear
+reset: Reset
help: Help
name: Name
width: Width
@@ -20,4 +20,3 @@ showOnlyThisPart: Show only this pattern part
partInfo: Pattern part info
pathInfo: Path info
part: Pattern part
-control: Experience