修复Q Builder中SchemeSetting初始化的问题。

This commit is contained in:
徐涛 2025-03-31 06:23:03 +08:00
parent efb2237135
commit cb9a01109e

View File

@ -79,7 +79,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
return []; return [];
}, []); }, []);
const collectSchemeSource = (formData: FormData): QSchemeSource => { const collectSchemeSource = (formData: FormData): [QSchemeSource, SchemeSetting] => {
const schemeSetting = new SchemeSetting( const schemeSetting = new SchemeSetting(
new ColorShifting( new ColorShifting(
Number(formData.get('hover_chroma')) / 100, Number(formData.get('hover_chroma')) / 100,
@ -105,7 +105,8 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
Number(formData.get('wacg')) as WACGSetting, Number(formData.get('wacg')) as WACGSetting,
); );
const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting; const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting;
return { return [
{
primary: defaultEmptyFormData(formData, 'primary', null), primary: defaultEmptyFormData(formData, 'primary', null),
secondary: defaultEmptyFormData(formData, 'secondary', null), secondary: defaultEmptyFormData(formData, 'secondary', null),
tertiary: defaultEmptyFormData(formData, 'tertiary', null), tertiary: defaultEmptyFormData(formData, 'tertiary', null),
@ -117,14 +118,16 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
foreground: defaultEmptyFormData(formData, 'foreground', null), foreground: defaultEmptyFormData(formData, 'foreground', null),
background: defaultEmptyFormData(formData, 'background', null), background: defaultEmptyFormData(formData, 'background', null),
setting: dumpedSetting, setting: dumpedSetting,
}; },
schemeSetting,
];
}; };
const [, handleDraftAction] = useActionState<Map<string, string>, FormData>( const [, handleDraftAction] = useActionState<Map<string, string>, FormData>(
(_state, formData) => { (_state, formData) => {
const errMsg = new Map<string, string>(); const errMsg = new Map<string, string>();
const source = collectSchemeSource(formData); const [source] = collectSchemeSource(formData);
updateScheme((prev) => { updateScheme((prev) => {
prev.schemeStorage.source = source; prev.schemeStorage.source = source;
return prev; return prev;
@ -154,7 +157,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
} }
if (!isEmpty(errMsg)) return errMsg; if (!isEmpty(errMsg)) return errMsg;
try { try {
const source = collectSchemeSource(formData); const [source, setting] = collectSchemeSource(formData);
const generatedScheme = every([source.secondary, source.tertiary, source.accent], isNil) const generatedScheme = every([source.secondary, source.tertiary, source.accent], isNil)
? colorFn?.generate_q_scheme_automatically( ? colorFn?.generate_q_scheme_automatically(
source.primary ?? '', source.primary ?? '',
@ -164,7 +167,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
source.info ?? '', source.info ?? '',
source.foreground ?? '', source.foreground ?? '',
source.background ?? '', source.background ?? '',
schemeSetting, setting,
) )
: colorFn?.generate_q_scheme_manually( : colorFn?.generate_q_scheme_manually(
source.primary ?? '', source.primary ?? '',
@ -177,7 +180,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
source.info ?? '', source.info ?? '',
source.foreground ?? '', source.foreground ?? '',
source.background ?? '', source.background ?? '',
schemeSetting, setting,
); );
updateScheme((prev) => { updateScheme((prev) => {
prev.schemeStorage.source = source; prev.schemeStorage.source = source;