Skip to content

Commit 2abbbcc

Browse files
committed
[theme]: theme saver in global state;
1 parent da60e8c commit 2abbbcc

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

src/App.tsx

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,44 @@ import {
55
Route,
66
Navigate,
77
} from 'react-router-dom';
8-
import { ConfigProvider } from 'antd';
8+
import { ConfigProvider, theme } from 'antd';
99
import enUS from 'antd/locale/en_US';
10+
// @ts-ignore
11+
import { usePersistentState } from 'persistent-state-react';
1012

1113
import { CustomLayout } from './layout/CustomLayout';
1214
import { LazyLanding } from './component/landing/LazyLanding';
1315
import { LazyPage2 } from './component/LazyPage2';
1416
import { LazyPage3 } from './component/LazyPage3';
1517

16-
const App = () => (
17-
<ConfigProvider locale={enUS}>
18-
<BrowserRouter basename="/react-pipeline">
19-
<CustomLayout>
20-
<Routes>
21-
<Route path="/landing" element={<LazyLanding />} />
22-
<Route path="/page2" element={<LazyPage2 />} />
23-
<Route path="/page3" element={<LazyPage3 />} />
24-
<Route
25-
path="*"
26-
element={<Navigate to="/landing" replace />}
27-
/>
28-
</Routes>
29-
</CustomLayout>
30-
</BrowserRouter>
31-
</ConfigProvider>
32-
);
18+
const App = () => {
19+
const [isDark, setIsDark] = usePersistentState<boolean>('global/theme', false);
20+
21+
const toggleTheme = () => setIsDark(!isDark);
22+
23+
return (
24+
<ConfigProvider
25+
locale={enUS}
26+
theme={{
27+
algorithm: isDark ? theme.darkAlgorithm : theme.defaultAlgorithm,
28+
}}
29+
>
30+
<BrowserRouter basename="/react-pipeline">
31+
<CustomLayout isDark={isDark} toggleTheme={toggleTheme}>
32+
<Routes>
33+
<Route path="/landing" element={<LazyLanding />} />
34+
<Route path="/page2" element={<LazyPage2 />} />
35+
<Route path="/page3" element={<LazyPage3 />} />
36+
<Route
37+
path="*"
38+
element={<Navigate to="/landing" replace />}
39+
/>
40+
</Routes>
41+
</CustomLayout>
42+
</BrowserRouter>
43+
</ConfigProvider>
44+
);
45+
};
3346

3447
// eslint-disable-next-line import/no-default-export
3548
export default App;

0 commit comments

Comments
 (0)