From 2bbb46ced190db05c3d779889fe0482751af730f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Sun, 6 Jul 2025 22:09:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor(swatch-scheme):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E6=96=B9=E6=A1=88=E6=9E=84=E5=BB=BA=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加颜色和设置的转换为 SwatchEntry 和 SwatchSchemeSetting - 重构颜色方案生成逻辑以提高清晰度和可维护性 --- .../scheme/swatch-scheme/Builder.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/page-components/scheme/swatch-scheme/Builder.tsx b/src/page-components/scheme/swatch-scheme/Builder.tsx index 114d42b..3db0e81 100644 --- a/src/page-components/scheme/swatch-scheme/Builder.tsx +++ b/src/page-components/scheme/swatch-scheme/Builder.tsx @@ -150,10 +150,19 @@ export function SwatchSchemeBuilder({ scheme, onBuildCompleted }: SwatchSchemeBu if (!isEmpty(errMsg)) return errMsg; - const generatedScheme = colorFn?.generate_swatch_scheme( - collected.colors, - collected.setting, + // todo: Convert colors to SwatchEntry[], and settings to SwtachSettings. + const swatchSettings = new SwatchSchemeSetting( + collected.setting.amount, + collected.setting.min_lightness, + collected.setting.max_lightness, + collected.setting.include_primary, + new ColorShifting( + collected.setting.dark_convert.chroma, + collected.setting.dark_convert.lightness, + ), ); + const colors = collected.colors.map((c) => new SwatchEntry(c.name, c.color)); + const generatedScheme = colorFn?.generate_swatch_scheme(colors, swatchSettings); updateScheme((prev) => { prev.schemeStorage.source = collected; prev.schemeStorage.scheme = mapToObject(generatedScheme[0]) as SwatchScheme;