89 lines
3.1 KiB
JavaScript
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>
|
|
);
|
|
}
|