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' const WORKSPACE_HOME: Record = { [WorkspaceType.SUPPLY]: '/supply/dashboard', [WorkspaceType.DEMAND]: '/demand/ai-search', } 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 Anfragencenter = lazy(() => import('./pages/supply/Anfragencenter')) const FutureAvailability = lazy(() => import('./pages/supply/FutureAvailability')) const DataQuality = lazy(() => import('./pages/supply/DataQuality')) const ReminderManager = lazy(() => import('./pages/supply/ReminderManager')) const MarketLeads = lazy(() => import('./pages/supply/MarketLeads')) const NewListing = lazy(() => import('./pages/supply/NewListing')) const MyListings = lazy(() => import('./pages/supply/MyListings')) const AISearch = lazy(() => import('./pages/demand/AISearch')) const Results = lazy(() => import('./pages/demand/Results')) const MatchDetail = lazy(() => import('./pages/demand/MatchDetail')) const Compare = lazy(() => import('./pages/demand/Compare')) const Anfragen = lazy(() => import('./pages/demand/Anfragen')) const Pipeline = lazy(() => import('./pages/demand/Pipeline')) const PropertyDetail = lazy(() => import('./pages/demand/PropertyDetail')) const MarketIntelligence = lazy(() => import('./pages/ops/MarketIntelligence')) function App() { return ( }> {/* Public */} } /> {/* Protected: auth check only */} }> }> } /> {/* Supply Workspace */} }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Demand Workspace */} }> } /> } /> } /> } /> } /> } /> } /> } /> ) } export default App