1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2025-02-16 20:53:57 +00:00
pds-2021-g2-nest/code/frontend/src/App.js

67 lines
2.3 KiB
JavaScript
Raw Normal View History

2021-04-21 00:23:35 +02:00
import classNames from "classnames"
import Style from "./App.module.css"
2021-04-21 15:08:54 +02:00
import Layout from "./components/Layout"
2021-04-21 15:37:12 +02:00
import ContextTheme from "./contexts/ContextTheme"
import { BrowserRouter } from "react-router-dom"
2021-04-21 18:21:30 +02:00
import { Route, Switch } from "react-router"
import PageDashboard from "./routes/PageDashboard"
2021-04-21 18:21:30 +02:00
import PageRepositories from "./routes/PageRepositories"
import PageAlerts from "./routes/PageAlerts"
import PageSettings from "./routes/PageSettings"
import PageSandbox from "./routes/PageSandbox"
import useSavedTheme from "./hooks/useSavedTheme"
import PageLogin from "./routes/PageLogin"
import useSavedLogin from "./hooks/useSavedLogin"
import ContextLogin from "./contexts/ContextLogin"
import PageRoot from "./routes/PageRoot"
2021-04-21 00:09:13 +02:00
2021-04-21 00:07:39 +02:00
/**
* The main component of the webapp, the root of the render tree, what is displayed when the web page is visited.
*
* @returns {JSX.Element}
* @constructor
*/
2021-04-21 00:23:35 +02:00
export default function App() {
const theme = useSavedTheme();
const login = useSavedLogin();
2021-04-21 00:23:35 +02:00
2021-04-21 00:09:13 +02:00
return (
<ContextTheme.Provider value={theme}>
<ContextLogin.Provider value={login}>
<BrowserRouter>
2021-04-21 15:37:12 +02:00
<div className={classNames(Style.App, theme)}>
<Layout>
2021-04-21 18:21:30 +02:00
<Switch>
<Route path={"/login"} exact={true}>
<PageLogin/>
</Route>
<Route path={"/repositories"} exact={true}>
2021-04-21 18:21:30 +02:00
<PageRepositories/>
</Route>
<Route path={"/alerts"} exact={true}>
2021-04-21 18:21:30 +02:00
<PageAlerts/>
</Route>
<Route path={"/settings"} exact={true}>
2021-04-21 18:21:30 +02:00
<PageSettings/>
</Route>
<Route path={"/sandbox"} exact={true}>
<PageSandbox/>
</Route>
<Route path={"/dashboard"} exact={true}>
<PageDashboard/>
</Route>
<Route path={"/"}>
<PageRoot/>
2021-04-21 18:32:05 +02:00
</Route>
2021-04-21 18:21:30 +02:00
</Switch>
2021-04-21 15:37:12 +02:00
</Layout>
</div>
</BrowserRouter>
</ContextLogin.Provider>
2021-04-21 15:37:12 +02:00
</ContextTheme.Provider>
2021-04-21 00:09:13 +02:00
)
2021-04-21 00:07:39 +02:00
}