diff --git a/src/App.tsx b/src/App.tsx index ee2b8cb..f0f7f40 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,15 +1,17 @@ -import React from 'react'; +import React, { Suspense } from 'react'; import { Routes, Route, Navigate, useLocation } from 'react-router-dom'; +import { Loader2 } from 'lucide-react'; import Layout from './components/Layout'; -import Dashboard from './pages/Dashboard'; -import Products from './pages/Products'; -import ProductDetails from './pages/ProductDetails'; -import Clients from './pages/Clients'; -import ClientDetails from './pages/ClientDetails'; -import Campaigns from './pages/Campaigns'; -import Login from './pages/Login'; import { isAuthenticated } from './dataService'; +const Dashboard = React.lazy(() => import('./pages/Dashboard')); +const Products = React.lazy(() => import('./pages/Products')); +const ProductDetails = React.lazy(() => import('./pages/ProductDetails')); +const Clients = React.lazy(() => import('./pages/Clients')); +const ClientDetails = React.lazy(() => import('./pages/ClientDetails')); +const Campaigns = React.lazy(() => import('./pages/Campaigns')); +const Login = React.lazy(() => import('./pages/Login')); + function PrivateRoute({ children }: { children: React.ReactNode }) { const location = useLocation(); if (!isAuthenticated()) { @@ -18,20 +20,28 @@ function PrivateRoute({ children }: { children: React.ReactNode }) { return children; } +const RouteFallback = () => ( +
+ +
+); + function App() { return ( - - } /> - } /> - }> - } /> - } /> - } /> - } /> - } /> - } /> - - + }> + + } /> + } /> + }> + } /> + } /> + } /> + } /> + } /> + } /> + + + ); }