forked from ShaneIsrael/fireshare
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
120 lines (116 loc) · 3.42 KB
/
App.js
File metadata and controls
120 lines (116 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import React from 'react'
import { Route, HashRouter as Router, Routes } from 'react-router-dom'
import { createTheme, ThemeProvider } from '@mui/material/styles'
import { CssBaseline } from '@mui/material'
import Login from './views/Login'
import Watch from './views/Watch'
import Dashboard from './views/Dashboard'
import NotFound from './views/NotFound'
import Settings from './views/Settings'
import Feed from './views/Feed'
import Games from './views/Games'
import GameVideos from './views/GameVideos'
import darkTheme from './common/darkTheme'
import { ConfigService } from './services'
import { getSetting, setSetting } from './common/utils'
import AuthWrapper from './components/utils/AuthWrapper'
import Navbar20 from './components/nav/Navbar20'
const muitheme = createTheme(darkTheme)
export default function App() {
React.useEffect(() => {
ConfigService.getConfig()
.then((res) => res.data)
.then((config) => {
setSetting('ui_config', config)
})
.catch((err) => console.error(err))
})
const drawerOpen = getSetting('drawerOpen') === undefined ? true : getSetting('drawerOpen')
return (
<Router>
<ThemeProvider theme={muitheme}>
<CssBaseline />
<Routes>
<Route
path="/"
element={
<AuthWrapper redirect={'/feed'}>
<Navbar20 page="/" collapsed={!drawerOpen} searchable styleToggle cardSlider>
<Dashboard />
</Navbar20>
</AuthWrapper>
}
/>
<Route
path="/feed"
element={
<AuthWrapper>
<Navbar20 page="/feed" collapsed={!drawerOpen} searchable styleToggle cardSlider>
<Feed />
</Navbar20>
</AuthWrapper>
}
/>
<Route
path="/login"
element={
<Navbar20 page="/login">
<AuthWrapper>
<Login />
</AuthWrapper>
</Navbar20>
}
/>
<Route
path="/settings"
element={
<AuthWrapper collapsed={!drawerOpen} redirect={'/login'}>
<Navbar20 page="/settings">
<Settings />
</Navbar20>
</AuthWrapper>
}
/>
<Route
path="/games"
element={
<AuthWrapper>
<Navbar20 page="/games" collapsed={!drawerOpen} searchable>
<Games />
</Navbar20>
</AuthWrapper>
}
/>
<Route
path="/games/:gameId"
element={
<AuthWrapper>
<Navbar20 page="/games" collapsed={!drawerOpen} styleToggle cardSlider searchable>
<GameVideos />
</Navbar20>
</AuthWrapper>
}
/>
<Route
path="/w/:id"
element={
<Navbar20 collapsed={true} toolbar page="/w">
<AuthWrapper>
<Watch />
</AuthWrapper>
</Navbar20>
}
/>
<Route
path="*"
element={
<AuthWrapper>
<NotFound />
</AuthWrapper>
}
/>
</Routes>
</ThemeProvider>
</Router>
)
}