import { Navigate, Route, Routes } from 'react-router-dom'; import { Layout } from '@/components/Layout'; import { ProtectedRoute } from '@/components/ProtectedRoute'; import { ToastViewport } from '@/components/Toast'; import { LoginPage } from '@/pages/LoginPage'; import { EngagementsListPage } from '@/pages/EngagementsListPage'; import { EngagementFormPage } from '@/pages/EngagementFormPage'; import { EngagementDetailPage } from '@/pages/EngagementDetailPage'; import { UsersAdminPage } from '@/pages/UsersAdminPage'; import { SimulationFormPage } from '@/pages/SimulationFormPage'; import { TemplatesListPage } from '@/pages/TemplatesListPage'; import { TemplateFormPage } from '@/pages/TemplateFormPage'; /** * Router. Auth + role gates handled by . * Default `/` redirects to /engagements (guarded — kicks to /login if no token). */ export function App(): JSX.Element { return ( <> } /> {/* All authenticated routes share the Layout chrome. */} }> }> } /> } /> } /> {/* redteam + admin write actions */} }> } /> } /> } /> {/* simulation edit — all authenticated roles, RBAC handled inside the page */} } /> {/* admin-only routes */} }> } /> {/* admin + redteam routes */} }> } /> } /> } /> } /> ); }