import { StrictMode, type ReactNode } from 'react';
import { createRoot } from 'react-dom/client';
import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { AppLayout } from './components/layout/app-layout';
import { RequireAdmin, RequireAuth } from './components/route-guards';
import { ToastProvider } from './components/ui/toast';
import { AuthProvider } from './features/auth/auth-context';
import { LoginPage } from './features/auth/login-page';
import { DashboardPage } from './features/dashboard/dashboard-page';
import { SystemStatusPage } from './features/admin/system-status-page';
import { UsersPage } from './features/admin/users-page';
import { ModulesPage } from './features/admin/modules-page';
import { AuditPage } from './features/admin/audit-page';
import { ForbiddenPage, NotFoundPage } from './pages/error-pages';
import './index.css';
document.documentElement.dataset.theme =
localStorage.getItem('mpm-theme') === 'dark' ? 'dark' : 'light';
/** TanStack Query: keine automatischen Refetches bei Fensterfokus. */
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: 1,
refetchOnWindowFocus: false,
staleTime: 30_000,
},
},
});
/** Routenbaum der Management-Plattform. */
function AppRoutes(): ReactNode {
return (
} />
}>
} />
}
/>
}
/>
}
/>
}
/>
} />
} />
} />
);
}
const rootElement = document.getElementById('root');
if (!rootElement) {
throw new Error('Root-Element nicht gefunden');
}
createRoot(rootElement).render(
,
);