import React, { useEffect, useState } from 'react'; import { BrowserRouter, Navigate, Route, Routes} from 'react-router-dom'; import './css/App.css'; import Home from './pages/Home'; import ErrorBoundary from './util/ErrorBoundary'; import Sidebar, { SidebarMenu } from './components/Sidebar'; import UserControls from './components/UserControls'; import { useLoginContext } from './structures/UserContext'; import Login from './pages/Login'; import { fetchUser } from './util/Util'; import PrivateRoute from './structures/PrivateRoute'; import { UnauthedRoute } from './structures/UnauthedRoute'; import Users from './pages/Users'; import Admin from './pages/Admin'; import TitledPage from './components/TitledPage'; import Register from './pages/Register'; function App() { const [user, updateUser] = useLoginContext(); const [loading, setLoading] = useState(true); useEffect(() => { (async () => { await fetchUser(); updateUser(); setLoading(false); })(); }, []); const menuItems = [ { to: '/home', label: 'Home', items: [{ to: '/profile', label: 'Profile', relative: true }] }, { to: '/users', label: 'Users' }, { to: '/admin', label: 'Admin' } ]; if (loading) return null; return (
{user ?
: null}
} /> } /> } /> } /> } /> } />
); } export default App;