Compare commits

...

2 Commits

Author SHA1 Message Date
徐涛
672e0e7c63 fix(preview): 添加对 baseline.surface 的数组检查以避免潜在错误 2026-01-15 11:46:45 +08:00
徐涛
d91a8eb341 feat(builder): 添加 SchemeSelect 支持并更新默认设置
fix(preview): 更新 PreviewBlock 组件的前景色属性
2026-01-15 10:56:14 +08:00
2 changed files with 12 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
import { capitalize, keys } from 'lodash-es'; import { capitalize, isArray, keys } from 'lodash-es';
import { FC, ReactNode, useMemo } from 'react'; import { FC, ReactNode, useMemo } from 'react';
import { useColorFunction } from '../../../ColorFunctionContext'; import { useColorFunction } from '../../../ColorFunctionContext';
import { ScrollArea } from '../../../components/ScrollArea'; import { ScrollArea } from '../../../components/ScrollArea';
@@ -127,11 +127,12 @@ const PreviewBlock: FC<PreviewBlockProps> = ({ baseline, title }) => {
<PreviewLine name="Neutral Variant" unit={baseline.neutralVariant} /> <PreviewLine name="Neutral Variant" unit={baseline.neutralVariant} />
</div> </div>
<div className={styles.preview_surface}> <div className={styles.preview_surface}>
{baseline.surface.map((surfaceSet, index) => ( {isArray(baseline.surface) &&
<div className={styles.surface_block} key={index}> baseline.surface.map((surfaceSet, index) => (
<PreviewLine key={index} name={`Surface ${index + 1}`} unit={surfaceSet} /> <div className={styles.surface_block} key={index}>
</div> <PreviewLine key={index} name={`Surface ${index + 1}`} unit={surfaceSet} />
))} </div>
))}
</div> </div>
<div className={styles.preview_indi_block}> <div className={styles.preview_indi_block}>
<PreviewCell bg={baseline.shadow} fg={baseline.neutralVariant.onRoot}> <PreviewCell bg={baseline.shadow} fg={baseline.neutralVariant.onRoot}>
@@ -140,10 +141,10 @@ const PreviewBlock: FC<PreviewBlockProps> = ({ baseline, title }) => {
<PreviewCell bg={baseline.overlay} fg={baseline.neutralVariant.onRoot}> <PreviewCell bg={baseline.overlay} fg={baseline.neutralVariant.onRoot}>
Overlay Overlay
</PreviewCell> </PreviewCell>
<PreviewCell bg={baseline.outline} fg={baseline.surface.onRoot}> <PreviewCell bg={baseline.outline} fg={baseline.foreground}>
Outline Outline
</PreviewCell> </PreviewCell>
<PreviewCell bg={baseline.outlineVariant} fg={baseline.surface.onRoot}> <PreviewCell bg={baseline.outlineVariant} fg={baseline.foreground}>
Outline Variant Outline Variant
</PreviewCell> </PreviewCell>
</div> </div>

View File

@@ -1,4 +1,4 @@
import { ColorExpand, ColorShifting, SchemeSetting, WACGSetting } from 'color-module'; import { ColorExpand, ColorShifting, SchemeSelect, SchemeSetting, WACGSetting } from 'color-module';
import { every, isEmpty, isNil } from 'lodash-es'; import { every, isEmpty, isNil } from 'lodash-es';
import { useActionState, useMemo } from 'react'; import { useActionState, useMemo } from 'react';
import { useColorFunction } from '../../../ColorFunctionContext'; import { useColorFunction } from '../../../ColorFunctionContext';
@@ -53,6 +53,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
), ),
scheme.schemeStorage.source?.setting?.expand_method ?? defaultValues.expand_method, scheme.schemeStorage.source?.setting?.expand_method ?? defaultValues.expand_method,
scheme.schemeStorage.source?.setting?.wacg_follows ?? defaultValues.wacg_follows, scheme.schemeStorage.source?.setting?.wacg_follows ?? defaultValues.wacg_follows,
scheme.schemeStorage.source?.setting?.scheme_select ?? defaultValues.scheme_select,
); );
return defaultValues; return defaultValues;
} catch (e) { } catch (e) {
@@ -103,6 +104,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps
), ),
Number(formData.get('expanding')) as ColorExpand, Number(formData.get('expanding')) as ColorExpand,
Number(formData.get('wacg')) as WACGSetting, Number(formData.get('wacg')) as WACGSetting,
SchemeSelect.Both,
); );
const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting; const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting;
return [ return [