1- import { useMemo , useState } from "react" ;
1+ import { useMemo } from "react" ;
22import {
33 CssBaseline ,
44 ThemeProvider ,
@@ -10,12 +10,12 @@ import { initializeContributions } from "chartlets";
1010import mui from "chartlets/plugins/mui" ;
1111import vega from "chartlets/plugins/vega" ;
1212
13- import { type AppState , appStore } from "@/store" ;
14- import ExtensionsInfo from "./components/ExtensionInfo" ;
13+ import { type AppState , appStore , useAppStore } from "@/store" ;
1514import ControlBar from "./components/ControlBar" ;
15+ import ExtensionsInfo from "./components/ExtensionInfo" ;
16+ import Header from "./components/Header" ;
1617import PanelsControl from "./components/PanelsControl" ;
1718import PanelsRow from "./components/PanelsRow" ;
18- import Header , { type Mode } from "./components/Header" ;
1919
2020initializeContributions ( {
2121 plugins : [ mui ( ) , vega ( ) ] ,
@@ -39,13 +39,14 @@ const fontFamily = "Roboto, Arial, sans-serif";
3939
4040function App ( ) {
4141 const prefersDarkMode = useMediaQuery ( "(prefers-color-scheme: dark)" ) ;
42- const systemMode = prefersDarkMode ? "dark" : "light" ;
43- const [ mode , setMode ] = useState < Mode > ( systemMode ) ;
42+ const systemThemeMode = prefersDarkMode ? "dark" : "light" ;
43+ const themeMode = useAppStore ( ( state ) => state . themeMode ) ;
44+
4445 const theme = useMemo (
4546 ( ) =>
4647 createTheme ( {
4748 palette : {
48- mode : mode === "system" ? systemMode : mode ,
49+ mode : themeMode === "system" ? systemThemeMode : themeMode ,
4950 } ,
5051 typography : { fontFamily } ,
5152 components : {
@@ -56,13 +57,13 @@ function App() {
5657 } ,
5758 } ,
5859 } ) ,
59- [ mode , systemMode ] ,
60+ [ themeMode , systemThemeMode ] ,
6061 ) ;
6162
6263 return (
6364 < ThemeProvider theme = { theme } >
6465 < CssBaseline />
65- < Header mode = { mode } setMode = { setMode } />
66+ < Header />
6667 < ExtensionsInfo />
6768 < ControlBar />
6869 < PanelsControl />
0 commit comments