diff --git a/packages/components/src/DraftConfigurator/DraftSettingSa/index.js b/packages/components/src/DraftConfigurator/DraftSettingSa/index.js index 7160a3574a8..b38bae7a24c 100644 --- a/packages/components/src/DraftConfigurator/DraftSettingSa/index.js +++ b/packages/components/src/DraftConfigurator/DraftSettingSa/index.js @@ -6,9 +6,19 @@ import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils"; import OptionPreamble from "../OptionPreamble"; const DraftSettingSa = props => { - const [value, setValue] = useState("dflt"); - const [saValue, setSaValue] = useState(defaultSa[props.units]); - const [customValue, setCustomValue] = useState(10); + const [value, setValue] = useState( + props.value === defaultSa[props.units] + ? "dflt" + : props.value === 0 + ? "none" + : "custom" + ); + const [saValue, setSaValue] = useState( + props.value === null ? defaultSa[props.units] : props.value + ); + const [customValue, setCustomValue] = useState( + value === "custom" ? props.value : 10 + ); const [expanded, setExpanded] = useState(false); const update = (name, newValue, evt) => { diff --git a/packages/components/src/DraftConfigurator/DraftSettings/index.js b/packages/components/src/DraftConfigurator/DraftSettings/index.js index 591d97d7e1a..17f722b0b32 100644 --- a/packages/components/src/DraftConfigurator/DraftSettings/index.js +++ b/packages/components/src/DraftConfigurator/DraftSettings/index.js @@ -66,6 +66,13 @@ const DraftSettings = props => { childProps.parts[part] = ; } } + if ( + typeof props.gist !== "undefined" && + typeof props.gist.settings !== "undefined" && + typeof props.gist.settings[setting] !== "undefined" + ) + childProps.value = props.gist.settings[setting]; + else childProps.value = null; return childProps; }; diff --git a/packages/components/src/DraftConfigurator/OptionGroup/index.js b/packages/components/src/DraftConfigurator/OptionGroup/index.js index 90c4fc72167..885f0f96a8d 100644 --- a/packages/components/src/DraftConfigurator/OptionGroup/index.js +++ b/packages/components/src/DraftConfigurator/OptionGroup/index.js @@ -28,7 +28,12 @@ const OptionGroup = props => { key: name, noDocs: props.noDocs }; - if (typeof props.gist.settings.options[name] !== "undefined") + if ( + typeof props.gist !== "undefined" && + typeof props.gist.settings !== "undefined" && + typeof props.gist.settings.options !== "undefined" && + typeof props.gist.settings.options[name] !== "undefined" + ) extraProps.value = props.gist.settings.options[name]; else extraProps.value = null;