修复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 [];
}, []);
const collectSchemeSource = (formData: FormData): QSchemeSource => {
const collectSchemeSource = (formData: FormData): [QSchemeSource, SchemeSetting] => {
const schemeSetting = new SchemeSetting(
new ColorShifting(
Number(formData.get('hover_chroma')) / 100,
@ -105,7 +105,8 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
Number(formData.get('wacg')) as WACGSetting,
);
const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting;
return {
return [
{
primary: defaultEmptyFormData(formData, 'primary', null),
secondary: defaultEmptyFormData(formData, 'secondary', null),
tertiary: defaultEmptyFormData(formData, 'tertiary', null),
@ -117,14 +118,16 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
foreground: defaultEmptyFormData(formData, 'foreground', null),
background: defaultEmptyFormData(formData, 'background', null),
setting: dumpedSetting,
};
},
schemeSetting,
];
};
const [, handleDraftAction] = useActionState<Map<string, string>, FormData>(
(_state, formData) => {
const errMsg = new Map<string, string>();
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;