2026-10-15 23:08:47 -06:00
|
|
|
import { BrowserRouter, Route, Routes } from "react-router";
|
2026-10-16 07:40:29 -06:00
|
|
|
import { AuthProvider } from "./auth/AuthProvider";
|
2026-10-15 23:08:47 -06:00
|
|
|
import { Layout } from "./components/Layout";
|
2026-10-16 07:40:29 -06:00
|
|
|
import { RequireAuth } from "./components/RequireAuth";
|
|
|
|
|
import { AboutPage } from "./pages/AboutPage";
|
2026-10-15 23:08:47 -06:00
|
|
|
import { HomePage } from "./pages/HomePage";
|
2026-10-16 09:31:45 -06:00
|
|
|
import { PacketPage } from "./packet/PacketPage";
|
2026-10-15 23:08:47 -06:00
|
|
|
import { NotFoundPage } from "./pages/NotFoundPage";
|
|
|
|
|
import { SignInPage } from "./pages/SignInPage";
|
2026-10-16 07:40:29 -06:00
|
|
|
import { AccountPage } from "./screens/account/AccountPage";
|
2026-10-16 09:31:45 -06:00
|
|
|
import { ProjectPage } from "./screens/clerical/ProjectPage";
|
|
|
|
|
import { UnitPage } from "./screens/clerical/UnitPage";
|
|
|
|
|
import { RequireScreen, ScreenRoute } from "./screens/ScreenRoute";
|
2026-10-15 23:08:47 -06:00
|
|
|
|
|
|
|
|
/** Route table. Exported apart from the router so tests can mount it in a MemoryRouter. */
|
|
|
|
|
export function AppRoutes() {
|
|
|
|
|
return (
|
|
|
|
|
<Routes>
|
|
|
|
|
<Route element={<Layout />}>
|
|
|
|
|
<Route index element={<HomePage />} />
|
|
|
|
|
<Route path="signin" element={<SignInPage />} />
|
2026-10-16 07:40:29 -06:00
|
|
|
<Route path="about" element={<AboutPage />} />
|
|
|
|
|
<Route element={<RequireAuth />}>
|
|
|
|
|
<Route path="account" element={<AccountPage />} />
|
|
|
|
|
<Route path=":screen" element={<ScreenRoute />} />
|
2026-10-16 09:31:45 -06:00
|
|
|
<Route
|
|
|
|
|
path="clerical/projects/:projectId"
|
|
|
|
|
element={
|
|
|
|
|
<RequireScreen screen="clerical">
|
|
|
|
|
<ProjectPage />
|
|
|
|
|
</RequireScreen>
|
|
|
|
|
}
|
|
|
|
|
/>
|
|
|
|
|
<Route
|
|
|
|
|
path="clerical/units/:unitId"
|
|
|
|
|
element={
|
|
|
|
|
<RequireScreen screen="clerical">
|
|
|
|
|
<UnitPage />
|
|
|
|
|
</RequireScreen>
|
|
|
|
|
}
|
|
|
|
|
/>
|
|
|
|
|
<Route path="packets/:id" element={<PacketPage />} />
|
2026-10-16 07:40:29 -06:00
|
|
|
</Route>
|
2026-10-15 23:08:47 -06:00
|
|
|
<Route path="*" element={<NotFoundPage />} />
|
|
|
|
|
</Route>
|
|
|
|
|
</Routes>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default function App() {
|
|
|
|
|
return (
|
|
|
|
|
<BrowserRouter>
|
2026-10-16 07:40:29 -06:00
|
|
|
<AuthProvider>
|
|
|
|
|
<AppRoutes />
|
|
|
|
|
</AuthProvider>
|
2026-10-15 23:08:47 -06:00
|
|
|
</BrowserRouter>
|
|
|
|
|
);
|
|
|
|
|
}
|