[react] fix: Improve handling default values of the pattern settings. (#234)
Fixes #229 unsure if expand is intended to be enabled or disabled by default, I opted for saving paper by default, but this can be easily changed. Reviewed-on: https://codeberg.org/freesewing/freesewing/pulls/234 Reviewed-by: Joost De Cock <joostdecock@noreply.codeberg.org> Co-authored-by: Jonathan Haas <haasjona@gmail.com> Co-committed-by: Jonathan Haas <haasjona@gmail.com>
This commit is contained in:
parent
aa9267b3c9
commit
658555efb6
1 changed files with 17 additions and 13 deletions
|
@ -14,6 +14,11 @@ import { LoadingStatus } from './components/LoadingStatus.mjs'
|
|||
import { ModalContextProvider } from '@freesewing/react/context/Modal'
|
||||
import { LoadingStatusContextProvider } from '@freesewing/react/context/LoadingStatus'
|
||||
|
||||
/**
|
||||
* Default setting values for the editor
|
||||
*/
|
||||
const defaultSettings = { sa: false, paperless: false, expand: false, complete: true }
|
||||
|
||||
/**
|
||||
* FreeSewing's pattern editor
|
||||
*
|
||||
|
@ -109,19 +114,18 @@ export const Editor = ({
|
|||
* We also ensure that settings is always set to an empty object in case there
|
||||
* are no settings yet, as this avoids having to null-check them everywhere.
|
||||
*/
|
||||
const passDownState =
|
||||
state.ui?.ux === undefined
|
||||
? {
|
||||
settings: {}, // Ensure settings is always set
|
||||
...state,
|
||||
ui: { ...(state.ui || {}), ux: editorConfig.defaultUx },
|
||||
_: { ...ephemeralState, missingMeasurements },
|
||||
}
|
||||
: {
|
||||
settings: {}, // Ensure settings is always set
|
||||
...state,
|
||||
_: { ...ephemeralState, missingMeasurements },
|
||||
}
|
||||
const passDownState = {
|
||||
...state,
|
||||
// Preset the default value of the pattern settings if not given.
|
||||
// Otherwise, we would later need to be very careful
|
||||
// when handling undefined/unset settings (including in the pattern code).
|
||||
settings: { ...defaultSettings, ...state.settings },
|
||||
_: { ...ephemeralState, missingMeasurements },
|
||||
}
|
||||
|
||||
if (state.ui?.ux === undefined) {
|
||||
passDownState.ui = { ...(state.ui || {}), ux: editorConfig.defaultUx }
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex flex-row items-top">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue