调整Q Scheme构造组件对于已记录值的获取和处理。
This commit is contained in:
		| @@ -11,7 +11,7 @@ import { FloatColorPicker } from '../../../components/FloatcolorPicker'; | |||||||
| import { ScrollArea } from '../../../components/ScrollArea'; | import { ScrollArea } from '../../../components/ScrollArea'; | ||||||
| import { VSegmentedControl } from '../../../components/VSegmentedControl'; | import { VSegmentedControl } from '../../../components/VSegmentedControl'; | ||||||
| import { SchemeContent } from '../../../models'; | import { SchemeContent } from '../../../models'; | ||||||
| import { QSchemeSource, QSchemeStorage } from '../../../q-scheme'; | import { QSchemeSetting, QSchemeSource, QSchemeStorage } from '../../../q-scheme'; | ||||||
| import { useUpdateScheme } from '../../../stores/schemes'; | import { useUpdateScheme } from '../../../stores/schemes'; | ||||||
| import { defaultEmptyFormData } from '../../../utls'; | import { defaultEmptyFormData } from '../../../utls'; | ||||||
| import styles from './Builder.module.css'; | import styles from './Builder.module.css'; | ||||||
| @@ -28,50 +28,35 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps | |||||||
|     try { |     try { | ||||||
|       if (!colorFn) throw 'Web Assembly functions is not available'; |       if (!colorFn) throw 'Web Assembly functions is not available'; | ||||||
|       const defaultValues = colorFn.q_scheme_default_settings(); |       const defaultValues = colorFn.q_scheme_default_settings(); | ||||||
|       if (!scheme.schemeStorage.source?.setting) |       if (scheme.schemeStorage.source?.setting) | ||||||
|         return { |         return new SchemeSetting( | ||||||
|           hover: { |           new ColorShifting( | ||||||
|             chroma: |             scheme.schemeStorage.source?.setting?.hover.chroma ?? defaultValues.hover.chroma, | ||||||
|               scheme.schemeStorage.source?.setting?.hover.chroma ?? defaultValues.hover.chroma, |             scheme.schemeStorage.source?.setting?.hover.lightness ?? defaultValues.hover.lightness, | ||||||
|             lightness: |           ), | ||||||
|               scheme.schemeStorage.source?.setting?.hover.lightness ?? |           new ColorShifting( | ||||||
|               defaultValues.hover.lightness, |             scheme.schemeStorage.source?.setting?.active.chroma ?? defaultValues.active.chroma, | ||||||
|           }, |             scheme.schemeStorage.source?.setting?.active.lightness ?? | ||||||
|           active: { |  | ||||||
|             chroma: |  | ||||||
|               scheme.schemeStorage.source?.setting?.active.chroma ?? defaultValues.active.chroma, |  | ||||||
|             lightness: |  | ||||||
|               scheme.schemeStorage.source?.setting?.active.lightness ?? |  | ||||||
|               defaultValues.active.lightness, |               defaultValues.active.lightness, | ||||||
|           }, |           ), | ||||||
|           focus: { |           new ColorShifting( | ||||||
|             chroma: |             scheme.schemeStorage.source?.setting?.focus.chroma ?? defaultValues.focus.chroma, | ||||||
|               scheme.schemeStorage.source?.setting?.focus.chroma ?? defaultValues.focus.chroma, |             scheme.schemeStorage.source?.setting?.focus.lightness ?? defaultValues.focus.lightness, | ||||||
|             lightness: |           ), | ||||||
|               scheme.schemeStorage.source?.setting?.focus.lightness ?? |           new ColorShifting( | ||||||
|               defaultValues.focus.lightness, |             scheme.schemeStorage.source?.setting?.disabled.chroma ?? defaultValues.disabled.chroma, | ||||||
|           }, |             scheme.schemeStorage.source?.setting?.disabled.lightness ?? | ||||||
|           disabled: { |  | ||||||
|             chroma: |  | ||||||
|               scheme.schemeStorage.source?.setting?.disabled.chroma ?? |  | ||||||
|               defaultValues.disabled.chroma, |  | ||||||
|             lightness: |  | ||||||
|               scheme.schemeStorage.source?.setting?.disabled.lightness ?? |  | ||||||
|               defaultValues.disabled.lightness, |               defaultValues.disabled.lightness, | ||||||
|           }, |           ), | ||||||
|           dark_convert: { |           new ColorShifting( | ||||||
|             chroma: |             scheme.schemeStorage.source?.setting?.dark_convert.chroma ?? | ||||||
|               scheme.schemeStorage.source?.setting?.dark_convert.chroma ?? |  | ||||||
|               defaultValues.dark_convert.chroma, |               defaultValues.dark_convert.chroma, | ||||||
|             lightness: |             scheme.schemeStorage.source?.setting?.dark_convert.lightness ?? | ||||||
|               scheme.schemeStorage.source?.setting?.dark_convert.lightness ?? |  | ||||||
|               defaultValues.dark_convert.lightness, |               defaultValues.dark_convert.lightness, | ||||||
|           }, |           ), | ||||||
|           expand_method: |           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, | ||||||
|           wacg_follows: |         ); | ||||||
|             scheme.schemeStorage.source?.setting?.wacg_follows ?? defaultValues.wacg_follows, |  | ||||||
|         } as SchemeSetting; |  | ||||||
|       return defaultValues; |       return defaultValues; | ||||||
|     } catch (e) { |     } catch (e) { | ||||||
|       console.error('[Q scheme builder]', e); |       console.error('[Q scheme builder]', e); | ||||||
| @@ -139,6 +124,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, | ||||||
|       ); |       ); | ||||||
|  |       const dumpedSetting = schemeSetting.toJsValue() as QSchemeSetting; | ||||||
|  |  | ||||||
|       const source: QSchemeSource = { |       const source: QSchemeSource = { | ||||||
|         primary: defaultEmptyFormData(formData, 'primary', null), |         primary: defaultEmptyFormData(formData, 'primary', null), | ||||||
| @@ -151,7 +137,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps | |||||||
|         info: defaultEmptyFormData(formData, 'info', null), |         info: defaultEmptyFormData(formData, 'info', null), | ||||||
|         foreground: defaultEmptyFormData(formData, 'foreground', null), |         foreground: defaultEmptyFormData(formData, 'foreground', null), | ||||||
|         background: defaultEmptyFormData(formData, 'background', null), |         background: defaultEmptyFormData(formData, 'background', null), | ||||||
|         setting: schemeSetting, |         setting: dumpedSetting, | ||||||
|       }; |       }; | ||||||
|       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( | ||||||
| @@ -162,7 +148,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps | |||||||
|             source.info, |             source.info, | ||||||
|             source.foreground, |             source.foreground, | ||||||
|             source.background, |             source.background, | ||||||
|             source.setting, |             schemeSetting, | ||||||
|           ) |           ) | ||||||
|         : colorFn?.generate_q_scheme_manually( |         : colorFn?.generate_q_scheme_manually( | ||||||
|             source.primary, |             source.primary, | ||||||
| @@ -175,7 +161,7 @@ export function QSchemeBuilder({ scheme, onBuildCompleted }: QSchemeBuilderProps | |||||||
|             source.info, |             source.info, | ||||||
|             source.foreground, |             source.foreground, | ||||||
|             source.background, |             source.background, | ||||||
|             source.setting, |             schemeSetting, | ||||||
|           ); |           ); | ||||||
|       updateScheme((prev) => { |       updateScheme((prev) => { | ||||||
|         prev.schemeStorage.source = source; |         prev.schemeStorage.source = source; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user