import { lazy, Suspense } from 'react' import { Routes, Route, Navigate } from 'react-router' import { LoadingPage, AppErrorBoundary } from './components/ui' import { AppShell } from './components/layout' import { ProtectedRoute } from './components/auth' import { WorkspaceType } from './domain/enums' import { useSessionStore } from './stores/sessionStore' // Die Flächensuche ist entfernt — es bleibt ein einziger erreichbarer Einstieg. const WORKSPACE_HOME: Record = { [WorkspaceType.SUPPLY]: '/supply/dashboard', } function RoleRedirect() { const currentUser = useSessionStore(s => s.currentUser) const first = currentUser?.allowedWorkspaces[0] ?? WorkspaceType.SUPPLY return } const LoginScreen = lazy(() => import('./pages/auth/LoginScreen')) const SupplyDashboard = lazy(() => import('./pages/supply/SupplyDashboard')) const Properties = lazy(() => import('./pages/supply/Properties')) const MatchCenter = lazy(() => import('./pages/supply/MatchCenter')) const FutureAvailability = lazy(() => import('./pages/supply/FutureAvailability')) const DataQuality = lazy(() => import('./pages/supply/DataQuality')) const ReminderManager = lazy(() => import('./pages/supply/ReminderManager')) const MarketIntelligence = lazy(() => import('./pages/supply/MarketIntelligence')) const NewListing = lazy(() => import('./pages/supply/NewListing')) const MyListings = lazy(() => import('./pages/supply/MyListings')) // Property On — «Teamübersicht» const Teamuebersicht = lazy(() => import('./pages/supply/Teamuebersicht')) const Personalverwaltung = lazy(() => import('./pages/supply/Personalverwaltung')) const Bearbeitungsverlauf = lazy(() => import('./pages/supply/Bearbeitungsverlauf')) const KanaeleSysteme = lazy(() => import('./pages/supply/KanaeleSysteme')) function App() { return ( }> {/* Public */} } /> {/* Protected: auth check only */} }> }> } /> {/* Supply Workspace */} }> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Property On — Hierarchie und Deep-Links bleiben erhalten (§3.4). Bewusst flache Geschwisterrouten statt : die App kennt keine einzige Feature-Route mit eigenem Outlet, ein Novum hier würde Sidebar, Seitentitel und Guards gleichzeitig betreffen. */} } /> } /> } /> } /> } /> } /> } /> } /> ) } export default App