diff --git a/src/page-components/scheme/q-scheme/Builder.tsx b/src/page-components/scheme/q-scheme/Builder.tsx index a8c4184..5bbfb02 100644 --- a/src/page-components/scheme/q-scheme/Builder.tsx +++ b/src/page-components/scheme/q-scheme/Builder.tsx @@ -79,7 +79,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps return []; }, []); - const collectSchemeSource = (formData: FormData): QSchemeSource => { + const collectSchemeSource = (formData: FormData): [QSchemeSource, SchemeSetting] => { const schemeSetting = new SchemeSetting( new ColorShifting( Number(formData.get('hover_chroma')) / 100, @@ -105,26 +105,29 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps Number(formData.get('wacg')) as WACGSetting, ); const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting; - return { - primary: defaultEmptyFormData(formData, 'primary', null), - secondary: defaultEmptyFormData(formData, 'secondary', null), - tertiary: defaultEmptyFormData(formData, 'tertiary', null), - accent: defaultEmptyFormData(formData, 'accent', null), - danger: defaultEmptyFormData(formData, 'danger', null), - success: defaultEmptyFormData(formData, 'success', null), - warning: defaultEmptyFormData(formData, 'warn', null), - info: defaultEmptyFormData(formData, 'info', null), - foreground: defaultEmptyFormData(formData, 'foreground', null), - background: defaultEmptyFormData(formData, 'background', null), - setting: dumpedSetting, - }; + return [ + { + primary: defaultEmptyFormData(formData, 'primary', null), + secondary: defaultEmptyFormData(formData, 'secondary', null), + tertiary: defaultEmptyFormData(formData, 'tertiary', null), + accent: defaultEmptyFormData(formData, 'accent', null), + danger: defaultEmptyFormData(formData, 'danger', null), + success: defaultEmptyFormData(formData, 'success', null), + warning: defaultEmptyFormData(formData, 'warn', null), + info: defaultEmptyFormData(formData, 'info', null), + foreground: defaultEmptyFormData(formData, 'foreground', null), + background: defaultEmptyFormData(formData, 'background', null), + setting: dumpedSetting, + }, + schemeSetting, + ]; }; const [, handleDraftAction] = useActionState, FormData>( (_state, formData) => { const errMsg = new Map(); - const source = collectSchemeSource(formData); + const [source] = collectSchemeSource(formData); updateScheme((prev) => { prev.schemeStorage.source = source; return prev; @@ -154,7 +157,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps } if (!isEmpty(errMsg)) return errMsg; try { - const source = collectSchemeSource(formData); + const [source, setting] = collectSchemeSource(formData); const generatedScheme = every([source.secondary, source.tertiary, source.accent], isNil) ? colorFn?.generate_q_scheme_automatically( source.primary ?? '', @@ -164,7 +167,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps source.info ?? '', source.foreground ?? '', source.background ?? '', - schemeSetting, + setting, ) : colorFn?.generate_q_scheme_manually( source.primary ?? '', @@ -177,7 +180,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps source.info ?? '', source.foreground ?? '', source.background ?? '', - schemeSetting, + setting, ); updateScheme((prev) => { prev.schemeStorage.source = source;