import React, { Suspense, lazy } from 'react' import LoginPage from './pages/LoginPage' import { lazyWithRetry } from './utils/lazyWithRetry' import { RouterProvider, createBrowserRouter, Navigate, NavLink, useLocation, Outlet, } from 'react-router-dom' import { AuthProvider, useAuth } from './context/AuthContext' import { EntitlementsProvider } from './context/EntitlementsContext' import { FormEditorActionsProvider, FormEditorBottomSlot } from './context/FormEditorActionsContext' import { ToastProvider } from './context/ToastContext' import { OrgInboxProvider, useOrgInbox } from './context/OrgInboxContext' import DesktopSidebar from './components/DesktopSidebar' import { getMainNavItems } from './config/appNav' import { isOnboardingAllowedPath, isOnboardingRestricted } from './utils/accountState' import AdminHomeRedirect from './components/AdminHomeRedirect' import PlatformAdminRoute from './components/PlatformAdminRoute' import ActiveClubSwitcher from './components/ActiveClubSwitcher' import InactiveMembershipBanner from './components/InactiveMembershipBanner' import './app.css' const OnboardingPage = lazyWithRetry(() => import('./pages/OnboardingPage')) const VerifyPage = lazy(() => import('./pages/VerifyPage')) const Dashboard = lazy(() => import('./pages/Dashboard')) const AccountSettingsPage = lazy(() => import('./pages/AccountSettingsPage')) const SettingsSystemInfoPage = lazy(() => import('./pages/SettingsSystemInfoPage')) const ExercisesListPage = lazy(() => import('./pages/ExercisesListPage')) const ExerciseDetailPage = lazy(() => import('./pages/ExerciseDetailPage')) const ExerciseFormPage = lazy(() => import('./pages/ExerciseFormPage')) const ProgressionGraphEditPage = lazy(() => import('./pages/ProgressionGraphEditPage')) const ClubsPage = lazy(() => import('./pages/ClubsPage')) const InboxPage = lazy(() => import('./pages/InboxPage')) const SkillsPage = lazy(() => import('./pages/SkillsPage')) const TrainingPlanningPage = lazy(() => import('./pages/TrainingPlanningPage')) const TrainingPlanTemplatesListPage = lazy(() => import('./pages/TrainingPlanTemplatesListPage')) const TrainingPlanTemplateEditPage = lazy(() => import('./pages/TrainingPlanTemplateEditPage')) const PlanningLayout = lazy(() => import('./layouts/PlanningLayout')) const TrainingFrameworkProgramsListPage = lazy(() => import('./pages/TrainingFrameworkProgramsListPage'), ) const TrainingFrameworkProgramEditPage = lazy(() => import('./pages/TrainingFrameworkProgramEditPage'), ) const TrainingModulesListPage = lazy(() => import('./pages/TrainingModulesListPage')) const TrainingModuleEditPage = lazy(() => import('./pages/TrainingModuleEditPage')) const TrainingUnitRunPage = lazy(() => import('./pages/TrainingUnitRunPage')) const TrainingUnitEditPage = lazy(() => import('./pages/TrainingUnitEditPage')) const TrainingCoachPage = lazy(() => import('./pages/TrainingCoachPage')) const AdminCatalogsPage = lazy(() => import('./pages/AdminCatalogsPage')) const AdminHierarchyPage = lazy(() => import('./pages/AdminHierarchyPage')) const AdminMaturityModelsPage = lazy(() => import('./pages/AdminMaturityModelsPage')) const TrainerContextsPage = lazy(() => import('./pages/TrainerContextsPage')) const MediaWikiImportPage = lazy(() => import('./pages/MediaWikiImportPage')) const AdminUsersPage = lazy(() => import('./pages/AdminUsersPage')) const AdminClubCreationRequestsPage = lazy(() => import('./pages/AdminClubCreationRequestsPage')) const AdminRightsPage = lazy(() => import('./pages/AdminRightsPage')) const MediaLibraryPage = lazy(() => import('./pages/MediaLibraryPage')) const LegalPage = lazy(() => import('./pages/LegalPage')) const AdminLegalDocumentsPage = lazy(() => import('./pages/AdminLegalDocumentsPage')) const AdminAiSkillRetrievalPage = lazy(() => import('./pages/AdminAiSkillRetrievalPage')) const AdminAiPromptsPage = lazy(() => import('./pages/AdminAiPromptsPage')) const AdminExerciseEnrichmentPage = lazy(() => import('./pages/AdminExerciseEnrichmentPage')) const AdminUserContentPage = lazy(() => import('./pages/AdminUserContentPage')) const SettingsLegalPage = lazy(() => import('./pages/SettingsLegalPage')) /** Shield „Admin“: nur Super-Admin (global). Vereinsorga: Vereine → Mitglieder. */ function computeShowAdminNav(currentUser) { return currentUser?.role === 'superadmin' } function AppRouteFallback() { return (