From cb9a01109e2bc39d8ecb44c3754f97380e8b0d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 31 Mar 2025 06:23:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DQ=20Builder=E4=B8=ADSchemeSet?= =?UTF-8?q?ting=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheme/q-scheme/Builder.tsx | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) 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;