PPPAIMT-Crest/frontend/src/App.jsx

89 lines
3.1 KiB
JavaScript

import { Navigate, Route, Routes } from 'react-router-dom';
import AdminLayout from './admin/AdminLayout.jsx';
import ApplicationDetailPage from './admin/ApplicationDetailPage.jsx';
import ApplicationsPage from './admin/ApplicationsPage.jsx';
import AuditPage from './admin/AuditPage.jsx';
import DashboardPage from './admin/DashboardPage.jsx';
import LoginPage from './admin/LoginPage.jsx';
import ReportsPage from './admin/ReportsPage.jsx';
import SettingsPage from './admin/SettingsPage.jsx';
import UsersPage from './admin/UsersPage.jsx';
import PrivacyPage from './pages/PrivacyPage.jsx';
import AgreementPage from './pages/AgreementPage.jsx';
import ResumePage from './pages/ResumePage.jsx';
import ReviewPage from './pages/ReviewPage.jsx';
import SignPage from './pages/SignPage.jsx';
import SubmittedPage from './pages/SubmittedPage.jsx';
import SurveyPage from './pages/SurveyPage.jsx';
import ConsentPage from './pages/ConsentPage.jsx';
import UserDashboardPage from './pages/UserDashboardPage.jsx';
import UserLoginPage from './pages/UserLoginPage.jsx';
import SiteFooter from './SiteFooter.jsx';
import SiteHeader from './SiteHeader.jsx';
import TokenReferrer from './TokenReferrer.jsx';
import UserLayout from './user/UserLayout.jsx';
function PublicShell({ children }) {
return (
<div className="site">
<SiteHeader />
{children}
<SiteFooter />
</div>
);
}
export default function App() {
return (
<Routes>
<Route path="/" element={<Navigate to="/login" replace />} />
<Route path="/login" element={<UserLoginPage />} />
<Route element={<UserLayout />}>
<Route path="/dashboard" element={<UserDashboardPage />} />
<Route path="/consent" element={<ConsentPage />} />
<Route path="/agreement" element={<AgreementPage />} />
<Route path="/review" element={<ReviewPage />} />
<Route path="/sign" element={<SignPage />} />
<Route path="/submitted" element={<SubmittedPage />} />
</Route>
<Route
path="/privacy"
element={
<PublicShell>
<PrivacyPage />
</PublicShell>
}
/>
<Route path="/start" element={<Navigate to="/login" replace />} />
<Route
path="/resume/:token"
element={
<PublicShell>
<TokenReferrer />
<ResumePage />
</PublicShell>
}
/>
<Route
path="/survey/:token"
element={
<PublicShell>
<TokenReferrer />
<SurveyPage />
</PublicShell>
}
/>
<Route path="/admin/login" element={<LoginPage />} />
<Route path="/admin" element={<AdminLayout />}>
<Route index element={<DashboardPage />} />
<Route path="applications" element={<ApplicationsPage />} />
<Route path="applications/:id" element={<ApplicationDetailPage />} />
<Route path="reports" element={<ReportsPage />} />
<Route path="settings" element={<SettingsPage />} />
<Route path="users" element={<UsersPage />} />
<Route path="audit" element={<AuditPage />} />
</Route>
</Routes>
);
}