diff --git a/packages/frontend/src/router.tsx b/packages/frontend/src/router.tsx
index 88b6ac6..ac78925 100644
--- a/packages/frontend/src/router.tsx
+++ b/packages/frontend/src/router.tsx
@@ -1,5 +1,7 @@
import { createBrowserRouter, Navigate } from 'react-router-dom';
import { Layout } from './components/Layout.js';
+import { AuthBoundary } from './components/AuthBoundary.js';
+import { RoleGuard } from './components/RoleGuard.js';
import { DashboardPage } from './pages/Dashboard.js';
import { AdminPage } from './pages/Admin.js';
import { AdminLessonPage } from './pages/AdminLesson.js';
@@ -10,23 +12,52 @@ import { StatsPage } from './pages/Stats.js';
import { StatsLessonPage } from './pages/StatsLesson.js';
import { StatsCardPage } from './pages/StatsCard.js';
import { SettingsPage } from './pages/Settings.js';
+import { LoginPage } from './pages/auth/Login.js';
+import { RegisterPage } from './pages/auth/Register.js';
+import { VerifyEmailPage } from './pages/auth/VerifyEmail.js';
+import { ForgotPasswordPage } from './pages/auth/ForgotPassword.js';
+import { ResetPasswordPage } from './pages/auth/ResetPassword.js';
+import { AcceptInvitePage } from './pages/auth/AcceptInvite.js';
+import { ProfilePage } from './pages/Profile.js';
+import { AdminUsersPage } from './pages/AdminUsers.js';
export const router = createBrowserRouter([
{
path: '/',
element: ,
children: [
- { index: true, element: },
- { path: 'admin', element: },
- { path: 'admin/lessons/:id', element: },
- { path: 'practice/:lessonId/setup', element: },
- { path: 'practice/:lessonId', element: },
- { path: 'practice/:lessonId/done', element: },
- { path: 'stats', element: },
- { path: 'stats/lessons/:id', element: },
- { path: 'stats/cards/:id', element: },
- { path: 'settings', element: },
- { path: '*', element: },
+ // Public auth routes
+ { path: 'login', element: },
+ { path: 'register', element: },
+ { path: 'verify-email', element: },
+ { path: 'forgot-password', element: },
+ { path: 'reset-password', element: },
+ { path: 'accept-invite', element: },
+
+ // Authenticated routes
+ {
+ element: ,
+ children: [
+ { index: true, element: },
+ { path: 'admin', element: },
+ { path: 'admin/lessons/:id', element: },
+ { path: 'practice/:lessonId/setup', element: },
+ { path: 'practice/:lessonId', element: },
+ { path: 'practice/:lessonId/done', element: },
+ { path: 'stats', element: },
+ { path: 'stats/lessons/:id', element: },
+ { path: 'stats/cards/:id', element: },
+ { path: 'settings', element: },
+ { path: 'profile', element: },
+ {
+ element: ,
+ children: [
+ { path: 'admin/users', element: },
+ ],
+ },
+ { path: '*', element: },
+ ],
+ },
],
},
]);