UNPKG

create-exam-project

Version:

Create exam projects with React + Express + PostgreSQL in seconds

70 lines (64 loc) 2.39 kB
import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom' import { Toaster } from 'react-hot-toast' import { AuthProvider } from './contexts/AuthContext' import { ConfigProvider } from './contexts/ConfigContext' import Layout from './components/Layout' import PrivateRoute from './components/PrivateRoute' import AdminRoute from './components/AdminRoute' import HomeRedirect from './components/HomeRedirect' // Pages import Login from './pages/Login' import Register from './pages/Register' import Dashboard from './pages/Dashboard' import ApplicationForm from './pages/ApplicationForm' import Applications from './pages/Applications' import AdminDashboard from './pages/AdminDashboard' import AdminApplications from './pages/AdminApplications' function App() { return ( <ConfigProvider> <AuthProvider> <Router> <Toaster position="top-right" toastOptions={{ duration: 4000, style: { background: '#363636', color: '#fff', }, success: { style: { background: '#10b981', }, }, error: { style: { background: '#ef4444', }, }, }} /> <Routes> <Route path="/login" element={<Login />} /> <Route path="/register" element={<Register />} /> <Route element={<PrivateRoute />}> <Route element={<Layout />}> <Route path="/" element={<HomeRedirect />} /> <Route path="/dashboard" element={<Dashboard />} /> <Route path="/applications" element={<Applications />} /> <Route path="/applications/new" element={<ApplicationForm />} /> <Route element={<AdminRoute />}> <Route path="/admin" element={<Navigate to="/admin/dashboard" replace />} /> <Route path="/admin/dashboard" element={<AdminDashboard />} /> <Route path="/admin/applications" element={<AdminApplications />} /> </Route> </Route> </Route> </Routes> </Router> </AuthProvider> </ConfigProvider> ) } export default App