Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit bc272a8

Browse files
lekoafTigge
authored andcommitted
docs: add ALL themes to docs page
Adds all 18 missing themes to the documentation page so that a user can see what's available by default.
1 parent 850bb3e commit bc272a8

File tree

3 files changed

+57
-21
lines changed

3 files changed

+57
-21
lines changed

packages/docs/src/Header.tsx

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@ import { Licenses } from './Licenses'
1515
const THEME_OPTIONS: ReadonlyArray<{
1616
readonly value: ThemeName
1717
readonly label: string
18-
}> = [{ value: ThemeName.DEFAULT_THEME, label: 'Default theme' }]
18+
}> = Object.values(ThemeName).map(value => {
19+
if (value === ThemeName.DEEP_PURPLE) {
20+
return { value, label: `${value} (default)` }
21+
}
22+
23+
return { value, label: value }
24+
})
1925

2026
const HeaderContainer = styled.div`
2127
padding: ${spacing.medium};
@@ -26,6 +32,12 @@ const HeaderContainer = styled.div`
2632
align-items: center;
2733
`
2834

35+
const ThemeWrapper = styled.div`
36+
display: inline-flex;
37+
align-items: center;
38+
gap: ${spacing.medium};
39+
`
40+
2941
export const Header = () => {
3042
const { themeName, setThemeName } = useContext(ThemeContext)
3143
const [, setThemeLocalStorage] = useLocalStorage<ThemeName>(THEME_NAME)
@@ -45,14 +57,18 @@ export const Header = () => {
4557
<Typography variant="page-heading">
4658
Practical react components
4759
</Typography>
48-
<Select<ThemeName>
49-
value={themeName}
50-
options={THEME_OPTIONS}
51-
onChange={onChange}
52-
placeholder="Select..."
53-
width="small"
54-
direction="down"
55-
/>
60+
<ThemeWrapper>
61+
<Typography>Theme:</Typography>
62+
<Select<ThemeName>
63+
compact={true}
64+
value={themeName}
65+
options={THEME_OPTIONS}
66+
onChange={onChange}
67+
placeholder="Select..."
68+
width="medium"
69+
direction="down"
70+
/>
71+
</ThemeWrapper>
5672
<IconButton
5773
icon={HelpIcon}
5874
onClick={openLicenses}

packages/docs/src/context.tsx

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,35 @@
11
import React, { createContext, useMemo, useState } from 'react'
22
import {
3-
defaultTheme,
3+
ColorBaseName,
4+
generateDefaultTheme,
45
PracticalProvider,
6+
SimpleColorBaseName,
57
} from 'practical-react-components-core'
68

7-
export const THEME_NAME = 'themePractical'
8-
9-
export enum ThemeActionType {
10-
'SWITCH_THEME',
11-
}
9+
export const THEME_NAME = 'themePractical:v1'
1210

1311
export enum ThemeName {
14-
'DEFAULT_THEME' = 'default_theme',
12+
// SimpleColorBaseName
13+
BROWN = 'brown',
14+
GREY = 'grey',
15+
BLUE_GREY = 'blueGrey',
16+
// ColorBaseName
17+
RED = 'red',
18+
PINK = 'pink',
19+
PURPLE = 'purple',
20+
DEEP_PURPLE = 'deepPurple',
21+
INDIGO = 'indigo',
22+
BLUE = 'blue',
23+
LIGHT_BLUE = 'lightBlue',
24+
CYAN = 'cyan',
25+
TEAL = 'teal',
26+
GREEN = 'green',
27+
LIGHT_GREEN = 'lightGreen',
28+
LIME = 'lime',
29+
YELLOW = 'yellow',
30+
AMBER = 'amber',
31+
ORANGE = 'orange',
32+
DEEP_ORANGE = 'deepOrange',
1533
}
1634

1735
export interface ThemeContextType {
@@ -24,7 +42,7 @@ export interface ThemeNameProvider {
2442
}
2543

2644
export const ThemeContext = createContext<ThemeContextType>({
27-
themeName: ThemeName.DEFAULT_THEME,
45+
themeName: ThemeName.DEEP_PURPLE,
2846
setThemeName: () => {
2947
/** no-op */
3048
},
@@ -33,13 +51,15 @@ const { Provider } = ThemeContext
3351

3452
export const ThemeProvider: React.FC<ThemeNameProvider> = ({
3553
children,
36-
initialThemeName = ThemeName.DEFAULT_THEME,
54+
initialThemeName = ThemeName.DEEP_PURPLE,
3755
}) => {
3856
const [themeName, setThemeName] = useState(initialThemeName)
3957

4058
const selectedTheme = useMemo(() => {
41-
return defaultTheme
42-
}, [])
59+
return generateDefaultTheme(
60+
themeName as SimpleColorBaseName | ColorBaseName
61+
)
62+
}, [themeName])
4363

4464
return (
4565
<Provider value={{ themeName, setThemeName }}>

packages/docs/src/mdx/Code.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export const Code: React.FC<CodeProps> = ({
7676
const language = (cls?.replace(/language-/, '') ?? '') as Language
7777
const { themeName } = useContext(ThemeContext)
7878

79-
const theme = themeName === ThemeName.DEFAULT_THEME ? lightTheme : darkTheme
79+
const theme = themeName === ThemeName.DEEP_PURPLE ? lightTheme : darkTheme
8080

8181
const transformCode = useCallback((code: string) => {
8282
return `/** @jsx mdx */\n${code}`

0 commit comments

Comments
 (0)