import { Navigate, Route, Routes } from 'react-router-dom'; import Layout from './components/Layout'; import { useSession } from './lib/session'; import type { Role } from './lib/types'; import Account from './pages/Account'; import Admin from './pages/Admin'; import Dashboard from './pages/Dashboard'; import Forum from './pages/Forum'; import Import from './pages/Import'; import Login from './pages/Login'; import PlayerDetail from './pages/PlayerDetail'; function Protected({ children, minimum }: { children: React.ReactNode; minimum?: Role }) { const { user, loading, can } = useSession(); if (loading) return
Lade …
; if (!user) return ; // Ein frisch angelegtes Konto muss zuerst sein Passwort wechseln. if (user.mustChangePassword) return ; if (minimum && !can(minimum)) return ; return <>{children}; } export default function App() { const { user, loading } = useSession(); return ( Lade … : user ? : } /> Lade … ) : !user ? ( ) : ( ) } /> } /> } /> } /> } /> } /> } /> ); }