darkwatch/client/src/App.tsx
Aaron Wood 075a9c5505 feat: add AuthContext, RequireAuth guard, and Darkwatch app routing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:36:38 -04:00

53 lines
1.5 KiB
TypeScript

import { BrowserRouter, Routes, Route } from "react-router-dom";
import { AuthProvider } from "./context/AuthContext";
import RequireAuth from "./components/RequireAuth";
import CampaignList from "./pages/CampaignList";
import CampaignView from "./pages/CampaignView";
import LoginPage from "./pages/LoginPage";
import RegisterPage from "./pages/RegisterPage";
import JoinPage from "./pages/JoinPage";
import ThemeToggle from "./components/ThemeToggle";
import styles from "./App.module.css";
export default function App() {
return (
<BrowserRouter>
<AuthProvider>
<div className={styles.app}>
<header className={styles.header}>
<h1>Darkwatch</h1>
<ThemeToggle />
</header>
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route path="/register" element={<RegisterPage />} />
<Route
path="/join/:token"
element={
<RequireAuth>
<JoinPage />
</RequireAuth>
}
/>
<Route
path="/"
element={
<RequireAuth>
<CampaignList />
</RequireAuth>
}
/>
<Route
path="/campaign/:id"
element={
<RequireAuth>
<CampaignView />
</RequireAuth>
}
/>
</Routes>
</div>
</AuthProvider>
</BrowserRouter>
);
}