完成M3动态Scheme的创建。
This commit is contained in:
parent
9b6f4ace14
commit
84c164b2c8
|
@ -64,7 +64,7 @@ export type MaterialDesign3DynamicSchemeSource = {
|
||||||
error: string | null;
|
error: string | null;
|
||||||
custom_colors?: Record<string, string>;
|
custom_colors?: Record<string, string>;
|
||||||
variant: number | null;
|
variant: number | null;
|
||||||
constrastLevel: number | null;
|
contrastLevel: number | null;
|
||||||
harmonizeCustoms: boolean | null;
|
harmonizeCustoms: boolean | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import { VSegmentedControl } from '../../../components/VSegmentedControl';
|
||||||
import { MaterialDesign3DynamicSchemeStorage } from '../../../material-3-scheme';
|
import { MaterialDesign3DynamicSchemeStorage } from '../../../material-3-scheme';
|
||||||
import { Option, SchemeContent } from '../../../models';
|
import { Option, SchemeContent } from '../../../models';
|
||||||
import { useUpdateScheme } from '../../../stores/schemes';
|
import { useUpdateScheme } from '../../../stores/schemes';
|
||||||
|
import { mapToObject } from '../../../utls';
|
||||||
import { ColorEntry, IdenticalColorEntry } from '../ColorEntry';
|
import { ColorEntry, IdenticalColorEntry } from '../ColorEntry';
|
||||||
import styles from './Builder.module.css';
|
import styles from './Builder.module.css';
|
||||||
|
|
||||||
|
@ -46,7 +47,7 @@ export function M3DynamicSchemeBuilder({ scheme, onBuildCompleted }: M3DynamicSc
|
||||||
return [];
|
return [];
|
||||||
}, []);
|
}, []);
|
||||||
const [contrastLevel, setContrastLevel] = useState<number>(
|
const [contrastLevel, setContrastLevel] = useState<number>(
|
||||||
scheme.schemeStorage.source?.constrastLevel ?? 0,
|
() => scheme.schemeStorage.source?.contrastLevel ?? 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
const [errMsg, handleSubmitAction] = useActionState<Map<string, string>, FormData>(
|
const [errMsg, handleSubmitAction] = useActionState<Map<string, string>, FormData>(
|
||||||
|
@ -61,7 +62,7 @@ export function M3DynamicSchemeBuilder({ scheme, onBuildCompleted }: M3DynamicSc
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const dynamicVariant = Number(formData.get('variant'));
|
const dynamicVariant = Number(formData.get('variant'));
|
||||||
const contrastLevel = Number(formData.get('contrast_level'));
|
const contrast = Number(formData.get('contrast_level'));
|
||||||
const harmonizeCustoms = isEqual(formData.get('harmonize_customs'), 'true');
|
const harmonizeCustoms = isEqual(formData.get('harmonize_customs'), 'true');
|
||||||
const errorColor = formData.get('error') as string;
|
const errorColor = formData.get('error') as string;
|
||||||
const customColors: Record<string, string> = {};
|
const customColors: Record<string, string> = {};
|
||||||
|
@ -80,7 +81,34 @@ export function M3DynamicSchemeBuilder({ scheme, onBuildCompleted }: M3DynamicSc
|
||||||
harmonizeCustoms,
|
harmonizeCustoms,
|
||||||
customColors,
|
customColors,
|
||||||
);
|
);
|
||||||
console.debug('[generate m3d]', generate_scheme);
|
updateScheme((prev) => {
|
||||||
|
prev.schemeStorage.source = {
|
||||||
|
source: sourceColor,
|
||||||
|
error: errorColor,
|
||||||
|
custom_colors: customColors,
|
||||||
|
variant: dynamicVariant,
|
||||||
|
contrastLevel: contrast,
|
||||||
|
harmonizeCustoms: harmonizeCustoms,
|
||||||
|
};
|
||||||
|
prev.schemeStorage.scheme = {
|
||||||
|
white: generate_scheme[0].white,
|
||||||
|
black: generate_scheme[0].black,
|
||||||
|
light_baseline: {
|
||||||
|
...generate_scheme[0].light_baseline,
|
||||||
|
customs: mapToObject(generate_scheme[0].light_baseline.customs),
|
||||||
|
},
|
||||||
|
dark_baseline: {
|
||||||
|
...generate_scheme[0].dark_baseline,
|
||||||
|
customs: mapToObject(generate_scheme[0].dark_baseline.customs),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
prev.schemeStorage.cssVariables = generate_scheme[1];
|
||||||
|
prev.schemeStorage.scssVariables = generate_scheme[2];
|
||||||
|
prev.schemeStorage.jsVariables = generate_scheme[3];
|
||||||
|
return prev;
|
||||||
|
});
|
||||||
|
|
||||||
|
onBuildCompleted?.();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[generate m3d]', e);
|
console.error('[generate m3d]', e);
|
||||||
}
|
}
|
||||||
|
@ -125,7 +153,7 @@ export function M3DynamicSchemeBuilder({ scheme, onBuildCompleted }: M3DynamicSc
|
||||||
<VSegmentedControl
|
<VSegmentedControl
|
||||||
name="variant"
|
name="variant"
|
||||||
options={variantOptions}
|
options={variantOptions}
|
||||||
defaultValue={scheme.schemeStorage.source?.variant}
|
defaultValue={scheme.schemeStorage.source?.variant ?? 6}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<label className={styles.label}>Contrast Level</label>
|
<label className={styles.label}>Contrast Level</label>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user