1
1
import { NavBar } from './views/Navigation/NavBar'
2
- import { useColorScheme } from '@mui/joy'
3
2
import { Outlet } from 'react-router-dom'
4
3
import { UserContext } from './contexts/UserContext'
5
4
import { isTokenValid } from './utils/api'
6
5
import React from 'react'
7
- import { ThemeMode } from './constants/theme'
8
6
import { GetUserProfile } from './api/users'
9
7
import { User } from './models/user'
10
- import { useRoot } from './utils/dom'
11
8
import { WithNavigate } from './utils/navigation'
9
+ import { CssBaseline , CssVarsProvider } from '@mui/joy'
12
10
13
11
type AppProps = WithNavigate
14
12
@@ -32,37 +30,10 @@ export class App extends React.Component<AppProps, AppState> {
32
30
} )
33
31
}
34
32
35
- private applyTheme = ( className : string ) => {
36
- useRoot ( ) . classList . add ( className )
37
- }
38
-
39
33
private setUserProfile = ( userProfile : User | null ) => {
40
34
this . setState ( { userProfile } )
41
35
}
42
36
43
- private loadTheme = ( ) => {
44
- const { mode, systemMode } = useColorScheme ( )
45
- const value : ThemeMode =
46
- JSON . parse ( localStorage . getItem ( 'themeMode' ) ?? '' ) || mode
47
-
48
- switch ( value ) {
49
- default :
50
- case 'system' :
51
- if ( systemMode === 'dark' ) {
52
- this . applyTheme ( 'dark' )
53
- }
54
- break
55
-
56
- case 'light' :
57
- this . applyTheme ( 'light' )
58
- break
59
-
60
- case 'dark' :
61
- this . applyTheme ( 'dark' )
62
- break
63
- }
64
- }
65
-
66
37
componentDidMount ( ) : void {
67
38
if ( isTokenValid ( ) ) {
68
39
this . loadUserProfile ( )
@@ -77,8 +48,11 @@ export class App extends React.Component<AppProps, AppState> {
77
48
return (
78
49
< div style = { { minHeight : '100vh' } } >
79
50
< UserContext . Provider value = { { userProfile, setUserProfile } } >
80
- < NavBar navigate = { navigate } />
81
- < Outlet />
51
+ < CssBaseline />
52
+ < CssVarsProvider modeStorageKey = 'themeMode' attribute = 'data-theme' defaultMode = 'system' colorSchemeNode = { document . body } >
53
+ < NavBar navigate = { navigate } />
54
+ < Outlet />
55
+ </ CssVarsProvider >
82
56
</ UserContext . Provider >
83
57
</ div >
84
58
)
0 commit comments