-
Notifications
You must be signed in to change notification settings - Fork 124
Expand file tree
/
Copy pathApp.tsx
More file actions
67 lines (57 loc) · 1.68 KB
/
App.tsx
File metadata and controls
67 lines (57 loc) · 1.68 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
import { useMemo } from "react";
import { Box, Toolbar } from "@mui/material";
import CssBaseline from "@mui/material/CssBaseline";
import { ThemeProvider, createTheme } from "@mui/material/styles";
import { QueryClientProvider } from "QueryClient";
import { Alert } from "components/Alert/Alert";
import { Route, Routes } from "react-router-dom";
import { PrivateRoute } from "layout/PrivateRoute";
import { privateRoutes, publicRoutes } from "layout/Routes";
import { AppBar } from "./layout/AppBar";
import "prismjs/components/prism-sql";
import "prismjs/themes/prism.css";
const mdTheme = createTheme();
export default function App() {
const publicRoutesItems = useMemo(
() =>
publicRoutes.map((route) => (
<Route key={route.link} path={route.link} element={<route.element />} />
)),
[]
);
const privateRoutesItems = useMemo(
() =>
privateRoutes.map((route) => (
<Route key={route.link} path={route.link} element={<PrivateRoute><route.element /></PrivateRoute>} />
)),
[]
);
return (
<QueryClientProvider>
<ThemeProvider theme={mdTheme}>
<Box sx={{ display: "flex" }}>
<CssBaseline />
<AppBar />
<Box
component="main"
sx={{
flexGrow: 1,
height: "100vh",
overflow: "auto",
p: 2,
flexFlow: "column",
display: "flex"
}}
>
<Toolbar />
<Routes>
{publicRoutesItems}
{privateRoutesItems}
</Routes>
<Alert />
</Box>
</Box>
</ThemeProvider>
</QueryClientProvider>
);
}