import React from "react"; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; import AppBar from "./views/common/AppBar"; import LoadingPage from "./views/common/LoadingPage"; import Home from "./views/home"; import Login from "./views/login"; import Settings from "./views/settings"; import About from "./views/about"; import User from "./views/user"; import TimelinePage from "./views/timeline"; import AlertHost from "./views/common/alert/AlertHost"; import { dataStorage } from "./services/common"; import { userService, useRawUser } from "./services/user"; const NoMatch: React.FC = () => { return ( <>
Ah-oh, 404!
); }; const LazyAdmin = React.lazy( () => import(/* webpackChunkName: "admin" */ "./views/admin/Admin") ); const App: React.FC = () => { const [loading, setLoading] = React.useState(true); const user = useRawUser(); React.useEffect(() => { void userService.checkLoginState(); void dataStorage.ready().then(() => setLoading(false)); }, []); if (user === undefined || loading) { return ; } else { return ( }> {user && user.administrator && ( )} ); } }; export default App;