import './App.css'; import { RouterProvider, createBrowserRouter, Navigate } from 'react-router-dom'; import Login from './pages/Login'; import Surveys from './pages/Surveys'; import NewSurvey from './pages/NewSurvey'; import SurveyResults from './pages/SurveyResults'; import SurveyAssignees from './pages/SurveyAssignees'; import Users from './pages/Users'; import NavBar from './components/NavBar'; import useLoginState from './hooks/useLoginState'; import CssBaseline from '@mui/material/CssBaseline'; import CustomThemeProvider from './CustomThemeProvider'; function routes({ login, logout, isLoggedIn }) { function withNavBar(component) { const navbarLinks = [ { label: 'Surveys', link: '/surveys' }, { label: 'New Survey', link: '/surveys/new' }, { label: 'Users', link: '/users' }, ]; return (<> {component} ); } if (!isLoggedIn) { return ([ { path: '*', element: , }, ]); } else { return ([ { path: '/', element: , }, { path: '/surveys', element: withNavBar(), }, { path: '/surveys/new', element: withNavBar(), }, { path: '/surveys/:surveyId/results', element: withNavBar(), }, { path: '/surveys/:surveyId/assignees', element: withNavBar(), }, { path: '/users', element: withNavBar(), }, ]); } } export default function App() { const { login, logout, isLoggedIn } = useLoginState(); const currentRoutes = routes({isLoggedIn, logout, login}); return ( <> ); }