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 { BrowserRouter, Routes, Route } from "react-router-dom"; import { Suspense, lazy } from 'react'; import { Loader2 } from 'lucide-react'; import GlobalHeader from "./components/GlobalHeader"; import GlobalAIChat from "./components/GlobalAIChat"; import { ThemeProvider } from "./contexts/ThemeContext"; import { NotificationProvider } from "./contexts/NotificationContext"; import { MCPProvider } from "./contexts/MCPContext"; // Lazy load pages const Index = lazy(() => import("./pages/Index")); const Widgets = lazy(() => import("./pages/Widgets")); const WidgetDiscovery = lazy(() => import("./pages/WidgetDiscovery")); const WidgetGallery = lazy(() => import("./pages/WidgetGallery")); const Dashboard = lazy(() => import("./pages/Dashboard")); const PageBuilder = lazy(() => import("./pages/PageBuilder")); const CustomPage = lazy(() => import("./pages/CustomPage")); const Install = lazy(() => import("./pages/Install")); const Backend = lazy(() => import("./pages/Backend")); const AdminDashboard = lazy(() => import("./pages/AdminDashboard")); const ReactorCoreStatusWidget = lazy(() => import("./widgets/ReactorCoreStatusWidget")); const NotFound = lazy(() => import("./pages/NotFound")); const queryClient = new QueryClient(); const LoadingFallback = () => (
); const App = () => (
}> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */} } />
{/* Global AI Chat - Available on all pages */}
); export default App;