import { useState, Suspense, lazy } from 'react'; import { Toaster } from "@/components/ui/toaster"; import { Toaster as Sonner } from "@/components/ui/sonner"; import { TooltipProvider } from "@/components/ui/tooltip"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ThemeProvider } from "next-themes"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Header from "@/components/layout/Header"; import BottomNav from "@/components/layout/BottomNav"; import Footer from "@/components/layout/Footer"; import SearchModal from "@/components/layout/SearchModal"; import MenuSheet from "@/components/layout/MenuSheet"; import UpdateNotification from "@/components/layout/UpdateNotification"; import InstallBanner from "@/components/layout/InstallBanner"; import ErrorBoundary from "@/components/ErrorBoundary"; import PageLoader from "@/components/ui/PageLoader"; // Página principal - cargar inmediatamente (crítica) import Home from "./pages/Index"; import NotFound from "./pages/NotFound"; // Lazy loading de páginas de contenido (cargar bajo demanda) const SoporteVital = lazy(() => import("./pages/SoporteVital")); const Patologias = lazy(() => import("./pages/Patologias")); const Escena = lazy(() => import("./pages/Escena")); const Farmacos = lazy(() => import("./pages/Farmacos")); const Herramientas = lazy(() => import("./pages/Herramientas")); const Material = lazy(() => import("./pages/Material")); const Telefono = lazy(() => import("./pages/Telefono")); const Comunicacion = lazy(() => import("./pages/Comunicacion")); const ManualIndex = lazy(() => import("./pages/ManualIndex")); const ManualViewer = lazy(() => import("./pages/ManualViewer")); const RCP = lazy(() => import("./pages/RCP")); const Ictus = lazy(() => import("./pages/Ictus")); const Shock = lazy(() => import("./pages/Shock")); const ViaAerea = lazy(() => import("./pages/ViaAerea")); // Lazy loading de páginas de utilidades const Favoritos = lazy(() => import("./pages/Favoritos")); const Historial = lazy(() => import("./pages/Historial")); const Ajustes = lazy(() => import("./pages/Ajustes")); const Acerca = lazy(() => import("./pages/Acerca")); const GaleriaImagenes = lazy(() => import("./pages/GaleriaImagenes")); const Privacidad = lazy(() => import("./pages/Privacidad")); const DescargoResponsabilidad = lazy(() => import("./pages/DescargoResponsabilidad")); const AvisoLegal = lazy(() => import("./pages/AvisoLegal")); const queryClient = new QueryClient(); const App = () => { const [isSearchOpen, setIsSearchOpen] = useState(false); const [isMenuOpen, setIsMenuOpen] = useState(false); return (
setIsSearchOpen(true)} onMenuClick={() => setIsMenuOpen(true)} />
}> setIsSearchOpen(true)} />} /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } />
); }; export default App;