import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { lazy, Suspense } from 'react'; import { AuthProvider } from './auth/AuthContext.jsx'; import { SanctionsProvider } from './auth/SanctionsContext.jsx'; import LoadingScreen from './LoadingScreen.jsx'; // Code-splitting: каждая большая страница в своём чанке. const KubikonEditor = lazy(() => import('./editor/KubikonEditor.jsx')); const KubikonPlayer = lazy(() => import('./preview-player/KubikonPlayer.jsx')); const KubikonFeed = lazy(() => import('./community/KubikonFeed.jsx')); const KubikonStudio = lazy(() => import('./community/KubikonStudio.jsx')); const KubikonDocs = lazy(() => import('./community/KubikonDocs.jsx')); const KubikonRules = lazy(() => import('./community/KubikonRules.jsx')); const KubikonHeroKit = lazy(() => import('./community/KubikonHeroKit.jsx')); const KubikonLearn = lazy(() => import('./community/KubikonLearn.jsx')); const KubikonGamePage = lazy(() => import('./community/KubikonGamePage.jsx')); const KubikonUserGames = lazy(() => import('./community/KubikonUserGames.jsx')); const RealtimeTest = lazy(() => import('./community/RealtimeTest.jsx')); // Geometry Dash sub-app const GdShop = lazy(() => import('./gd-shop/GdShop.jsx')); const GdMenu = lazy(() => import('./gd-shop/GdMenu.jsx')); const GdRules = lazy(() => import('./gd-shop/GdRules.jsx')); const GdCoverArt = lazy(() => import('./gd-shop/GdCoverArt.jsx')); const GdPlayWrapper = lazy(() => import('./gd-shop/GdPlayWrapper.jsx')); // Превью-роуты для команды дизайнеров (закрытые в проде по роли, // в opensource доступны всем — это просто галереи ассетов). const GdBossesPreview = lazy(() => import('./admin-preview/GdBossesPreview.jsx')); const GdSkinsPreview = lazy(() => import('./admin-preview/GdSkinsPreview.jsx')); const GdSpikesPreview = lazy(() => import('./admin-preview/GdSpikesPreview.jsx')); const GdArchesPreview = lazy(() => import('./admin-preview/GdArchesPreview.jsx')); const GdFinishesPreview = lazy(() => import('./admin-preview/GdFinishesPreview.jsx')); const GdPortalsPreview = lazy(() => import('./admin-preview/GdPortalsPreview.jsx')); const GdMusicPreview = lazy(() => import('./admin-preview/GdMusicPreview.jsx')); const GdSfxPreview = lazy(() => import('./admin-preview/GdSfxPreview.jsx')); const GdShipSkinsPreview = lazy(() => import('./admin-preview/GdShipSkinsPreview.jsx')); const GdDecoPreview = lazy(() => import('./admin-preview/GdDecoPreview.jsx')); function FallbackLoader() { return ; } export default function App() { return ( }> {/* Редактор и плеер (fullscreen) */} } /> } /> } /> {/* Лента, профиль, доки */} } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Geometry Dash */} } /> } /> } /> } /> } /> {/* Каталоги ассетов (для дизайнеров) */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* 404 → главная */} } /> ); }