From f9f984a1b4e7a32e52dac785e6a4aecf1e30beff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 24 Jan 2025 15:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84Scheme=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E7=BB=93=E6=9E=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page-components/scheme/M2Scheme.tsx | 3 + src/page-components/scheme/M3Scheme.tsx | 3 + src/page-components/scheme/QScheme.tsx | 3 + .../scheme/SchemeContent.module.css | 25 -------- src/page-components/scheme/SchemeContent.tsx | 61 ------------------- .../scheme/SchemeView.module.css | 17 ------ src/page-components/scheme/SchemeView.tsx | 23 ------- src/page-components/scheme/SwatchScheme.tsx | 3 + src/page-components/scheme/UnknownScheme.tsx | 3 + src/pages/SchemeDetail.tsx | 22 ++++++- 10 files changed, 36 insertions(+), 127 deletions(-) create mode 100644 src/page-components/scheme/M2Scheme.tsx create mode 100644 src/page-components/scheme/M3Scheme.tsx create mode 100644 src/page-components/scheme/QScheme.tsx delete mode 100644 src/page-components/scheme/SchemeContent.module.css delete mode 100644 src/page-components/scheme/SchemeContent.tsx delete mode 100644 src/page-components/scheme/SchemeView.module.css delete mode 100644 src/page-components/scheme/SchemeView.tsx create mode 100644 src/page-components/scheme/SwatchScheme.tsx create mode 100644 src/page-components/scheme/UnknownScheme.tsx diff --git a/src/page-components/scheme/M2Scheme.tsx b/src/page-components/scheme/M2Scheme.tsx new file mode 100644 index 0000000..c102e8a --- /dev/null +++ b/src/page-components/scheme/M2Scheme.tsx @@ -0,0 +1,3 @@ +export function M2Scheme() { + return
Material Design 2 Scheme
; +} diff --git a/src/page-components/scheme/M3Scheme.tsx b/src/page-components/scheme/M3Scheme.tsx new file mode 100644 index 0000000..7d38bc7 --- /dev/null +++ b/src/page-components/scheme/M3Scheme.tsx @@ -0,0 +1,3 @@ +export function M3Scheme() { + return
Material Design 3 Scheme
; +} diff --git a/src/page-components/scheme/QScheme.tsx b/src/page-components/scheme/QScheme.tsx new file mode 100644 index 0000000..929d8cf --- /dev/null +++ b/src/page-components/scheme/QScheme.tsx @@ -0,0 +1,3 @@ +export function QScheme() { + return
Q Scheme
; +} diff --git a/src/page-components/scheme/SchemeContent.module.css b/src/page-components/scheme/SchemeContent.module.css deleted file mode 100644 index e5035eb..0000000 --- a/src/page-components/scheme/SchemeContent.module.css +++ /dev/null @@ -1,25 +0,0 @@ -@layer pages { - .scheme_content { - flex: 1; - overflow-y: auto; - display: flex; - flex-direction: column; - gap: var(--spacing-m); - } - .series_row { - display: flex; - flex-direction: column; - gap: var(--spacing-s); - h4 { - padding-block: var(--spacing-xs); - font-size: var(--font-size-l); - } - ul { - display: flex; - flex-direction: row; - justify-content: flex-start; - flex-wrap: wrap; - gap: var(--spacing-l); - } - } -} diff --git a/src/page-components/scheme/SchemeContent.tsx b/src/page-components/scheme/SchemeContent.tsx deleted file mode 100644 index 440b195..0000000 --- a/src/page-components/scheme/SchemeContent.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { isArray } from 'lodash-es'; -import { ColorStand } from '../../components/ColorStand'; -import { SchemeSet } from '../../stores/schemes'; -import styles from './SchemeContent.module.css'; - -type ColorSeriesProps = { - title: string; - series: SchemeSet['lightScheme' | 'darkScheme']['primary']; - simpleSeries?: boolean; -}; - -function ColorSeries({ title, series, simpleSeries = false }: ColorSeriesProps) { - return ( -
-

{title}

- -
- ); -} - -type SchemeContentProps = { - scheme: SchemeSet['lightScheme' | 'darkScheme']; -}; - -export function SchemeContent({ scheme }: SchemeContentProps) { - return ( -
- - - - {isArray(scheme.secondary) ? ( - scheme.secondary.map((cSet, index) => ( - - )) - ) : ( - - )} - - - - - - -
- ); -} diff --git a/src/page-components/scheme/SchemeView.module.css b/src/page-components/scheme/SchemeView.module.css deleted file mode 100644 index 44ee9b9..0000000 --- a/src/page-components/scheme/SchemeView.module.css +++ /dev/null @@ -1,17 +0,0 @@ -@layer pages { - .scheme_view_layout { - flex: 1 0; - width: 100%; - padding: calc(var(--spacing) * 4) calc(var(--spacing) * 8); - display: flex; - flex-direction: column; - gap: var(--spacing-m); - overflow: hidden; - } - .preview_switch_container { - display: flex; - flex-direction: row; - align-items: center; - gap: var(--spacing-m); - } -} diff --git a/src/page-components/scheme/SchemeView.tsx b/src/page-components/scheme/SchemeView.tsx deleted file mode 100644 index 9ee1f42..0000000 --- a/src/page-components/scheme/SchemeView.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { useState } from 'react'; -import { Switch } from '../../components/Switch'; -import { SchemeSet } from '../../stores/schemes'; -import { SchemeContent } from './SchemeContent'; -import styles from './SchemeView.module.css'; - -type SchemeViewProps = { - scheme: SchemeSet['lightScheme' | 'darkScheme']; -}; - -export function SchemeView({ scheme }: SchemeViewProps) { - const [enablePreview, setEnablePreview] = useState(false); - - return ( -
-
- Preview scheme - setEnablePreview(checked)} /> -
- {enablePreview ?
SVG Preview
: } -
- ); -} diff --git a/src/page-components/scheme/SwatchScheme.tsx b/src/page-components/scheme/SwatchScheme.tsx new file mode 100644 index 0000000..09c6ddb --- /dev/null +++ b/src/page-components/scheme/SwatchScheme.tsx @@ -0,0 +1,3 @@ +export function SwatchScheme() { + return
Swatch Scheme
; +} diff --git a/src/page-components/scheme/UnknownScheme.tsx b/src/page-components/scheme/UnknownScheme.tsx new file mode 100644 index 0000000..6a52859 --- /dev/null +++ b/src/page-components/scheme/UnknownScheme.tsx @@ -0,0 +1,3 @@ +export function UnknownScheme() { + return
Unknown or currupted scheme
; +} diff --git a/src/pages/SchemeDetail.tsx b/src/pages/SchemeDetail.tsx index 5a7835e..b374563 100644 --- a/src/pages/SchemeDetail.tsx +++ b/src/pages/SchemeDetail.tsx @@ -1,10 +1,15 @@ import dayjs from 'dayjs'; import { isNil, set } from 'lodash-es'; -import { useCallback, useEffect } from 'react'; +import { useCallback, useEffect, useMemo } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { EditableDescription } from '../components/EditableDescription'; import { EditableTitle } from '../components/EditableTitle'; import { SchemeSign } from '../components/SchemeSign'; +import { M2Scheme } from '../page-components/scheme/M2Scheme'; +import { M3Scheme } from '../page-components/scheme/M3Scheme'; +import { QScheme } from '../page-components/scheme/QScheme'; +import { SwatchScheme } from '../page-components/scheme/SwatchScheme'; +import { UnknownScheme } from '../page-components/scheme/UnknownScheme'; import { useScheme, useUpdateScheme } from '../stores/schemes'; import styles from './SchemeDetail.module.css'; @@ -32,6 +37,20 @@ export function SchemeDetail() { }, [id], ); + const schemeContent = useMemo(() => { + switch (scheme?.type) { + case 'q_scheme': + return ; + case 'swatch_scheme': + return ; + case 'material_2': + return ; + case 'material_3': + return ; + default: + return ; + } + }, [scheme]); useEffect(() => { if (isNil(scheme)) { @@ -49,6 +68,7 @@ export function SchemeDetail() { + {schemeContent} ); }