基本完成M3 Scheme的生成功能。
This commit is contained in:
parent
1b044c66d7
commit
7bfe9a7620
|
@ -35,7 +35,7 @@ export type Baseline = {
|
||||||
outline_variant: string;
|
outline_variant: string;
|
||||||
scrim: string;
|
scrim: string;
|
||||||
shadow: string;
|
shadow: string;
|
||||||
customs: Map<string, ColorSet>;
|
customs: Record<string, ColorSet>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type MaterialDesign3Scheme = {
|
export type MaterialDesign3Scheme = {
|
||||||
|
|
|
@ -3,6 +3,8 @@ import { useState } from 'react';
|
||||||
import { Tab } from '../../components/Tab';
|
import { Tab } from '../../components/Tab';
|
||||||
import { MaterialDesign3SchemeStorage } from '../../material-3-scheme';
|
import { MaterialDesign3SchemeStorage } from '../../material-3-scheme';
|
||||||
import { SchemeExport } from './Export';
|
import { SchemeExport } from './Export';
|
||||||
|
import { M3SchemeBuilder } from './m3-scheme/Builder';
|
||||||
|
import { M3SchemePreview } from './m3-scheme/Preview';
|
||||||
|
|
||||||
const tabOptions = [
|
const tabOptions = [
|
||||||
{ title: 'Overview', id: 'overview' },
|
{ title: 'Overview', id: 'overview' },
|
||||||
|
@ -22,8 +24,10 @@ export function M3Scheme({ scheme }: M3SchemeProps) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Tab tabs={tabOptions} activeTab={activeTab} onActive={setActiveTab} />
|
<Tab tabs={tabOptions} activeTab={activeTab} onActive={setActiveTab} />
|
||||||
{isEqual(activeTab, 'overview') && <div>Preview</div>}
|
{isEqual(activeTab, 'overview') && <M3SchemePreview scheme={scheme} />}
|
||||||
{isEqual(activeTab, 'builder') && <div>Builder</div>}
|
{isEqual(activeTab, 'builder') && (
|
||||||
|
<M3SchemeBuilder scheme={scheme} onBuildCompleted={() => setActiveTab('overview')} />
|
||||||
|
)}
|
||||||
{isEqual(activeTab, 'export') && <SchemeExport scheme={scheme} />}
|
{isEqual(activeTab, 'export') && <SchemeExport scheme={scheme} />}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|
|
@ -3,9 +3,10 @@ import { useActionState, useCallback, useMemo, useState } from 'react';
|
||||||
import { useColorFunction } from '../../../ColorFunctionContext';
|
import { useColorFunction } from '../../../ColorFunctionContext';
|
||||||
import { FloatColorPicker } from '../../../components/FloatcolorPicker';
|
import { FloatColorPicker } from '../../../components/FloatcolorPicker';
|
||||||
import { ScrollArea } from '../../../components/ScrollArea';
|
import { ScrollArea } from '../../../components/ScrollArea';
|
||||||
import { MaterialDesign3SchemeStorage } from '../../../material-3-scheme';
|
import { MaterialDesign3Scheme, MaterialDesign3SchemeStorage } from '../../../material-3-scheme';
|
||||||
import { SchemeContent } from '../../../models';
|
import { 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';
|
||||||
|
|
||||||
|
@ -68,7 +69,18 @@ export function M3SchemeBuilder({ scheme, onBuildCompleted }: M3SchemeBuilderPro
|
||||||
error: errorColor as string,
|
error: errorColor as string,
|
||||||
custom_colors: customColors,
|
custom_colors: customColors,
|
||||||
};
|
};
|
||||||
prev.schemeStorage.scheme = generatedScheme[0];
|
prev.schemeStorage.scheme = {
|
||||||
|
white: generatedScheme[0].white,
|
||||||
|
black: generatedScheme[0].black,
|
||||||
|
light_baseline: {
|
||||||
|
...generatedScheme[0].light_baseline,
|
||||||
|
customs: mapToObject(generatedScheme[0].light_baseline.customs),
|
||||||
|
},
|
||||||
|
dark_baseline: {
|
||||||
|
...generatedScheme[0].dark_baseline,
|
||||||
|
customs: mapToObject(generatedScheme[0].dark_baseline.customs),
|
||||||
|
},
|
||||||
|
} as MaterialDesign3Scheme;
|
||||||
prev.schemeStorage.cssVariables = generatedScheme[1];
|
prev.schemeStorage.cssVariables = generatedScheme[1];
|
||||||
prev.schemeStorage.scssVariables = generatedScheme[2];
|
prev.schemeStorage.scssVariables = generatedScheme[2];
|
||||||
prev.schemeStorage.jsVariables = generatedScheme[3];
|
prev.schemeStorage.jsVariables = generatedScheme[3];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user