retropilot-client/src/App.js

70 lines
1.3 KiB
JavaScript
Raw Normal View History

2022-01-03 09:30:54 -07:00
import CssBaseline from '@mui/material/CssBaseline';
import { createTheme, ThemeProvider } from '@mui/material/styles';
import React, { useState } from 'react';
import Login from "./components/views/login";
import UserAdmin from "./components/views/useradmin";
import GlobalSnack from './components/widgets/globalSnack';
import DeviceStore from "./context/devices";
import ToastStore from "./context/toast";
import { UserProvider } from "./context/users";
import * as authenticationController from "./controllers/authentication";
2022-01-03 09:30:54 -07:00
// Connection opened
function App() {
const [session, setSession] = useState(false)
authenticationController.getSession().then((res) => {
setSession(res.data.authenticated)
})
2022-01-05 09:55:56 -07:00
2022-01-03 09:30:54 -07:00
const theme = React.useMemo(
() =>
createTheme({
palette: {
2022-01-05 09:55:56 -07:00
mode: window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light',
2022-01-03 09:30:54 -07:00
},
}),
2022-01-07 10:42:39 -07:00
[],
2022-01-03 09:30:54 -07:00
);
return (
<div className="App">
<ThemeProvider theme={theme}>
<CssBaseline />
<UserProvider>
<DeviceStore>
<ToastStore>
<GlobalSnack />
{session ? <UserAdmin/> : <Login />}
2022-01-03 09:30:54 -07:00
</ToastStore>
</DeviceStore>
</UserProvider>
</ThemeProvider>
</div>
);
}
export default App;