diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 25874c5..8506950 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,16 +1,29 @@ import { Toaster } from 'sonner' +import { lazy, Suspense } from 'react' import { NavLink, Outlet, Route, Routes } from 'react-router-dom' import { SiteSelectionProvider, useSiteSelection } from './context/SiteSelectionContext' import { useWsLogErrorCount } from './hooks/useWsLogErrorCount' -import { Dashboard } from './pages/Dashboard' -import Economics from './pages/Economics' -import EnergyFlows from './pages/EnergyFlows' -import ForecastVsActual from './pages/ForecastVsActual' -import { Logs } from './pages/Logs' -import Planning from './pages/Planning' -import SiteConfiguration from './pages/SiteConfiguration' -import { Settings } from './pages/Settings' + +// Lazy route komponenty — initial bundle nese jen layout; stránky se dotahují per route. +const Dashboard = lazy(() => + import('./pages/Dashboard').then((m) => ({ default: m.Dashboard })), +) +const Economics = lazy(() => import('./pages/Economics')) +const EnergyFlows = lazy(() => import('./pages/EnergyFlows')) +const ForecastVsActual = lazy(() => import('./pages/ForecastVsActual')) +const Logs = lazy(() => import('./pages/Logs').then((m) => ({ default: m.Logs }))) +const Planning = lazy(() => import('./pages/Planning')) +const SiteConfiguration = lazy(() => import('./pages/SiteConfiguration')) +const Settings = lazy(() => import('./pages/Settings').then((m) => ({ default: m.Settings }))) + +function RouteFallback() { + return ( +