diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 35d47f8f..0ed2f325 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,30 +1,45 @@ -import { Routes, Route, Navigate } from 'react-router-dom'; +import { lazy, Suspense } from 'react'; +import { Routes, Route } from 'react-router-dom'; import { useEffect } from 'react'; -import Home from './pages/Home'; -import Debugger from './pages/Debugger'; -import PayrollScheduler from './pages/PayrollScheduler'; -import EmployeeEntry from './pages/EmployeeEntry'; +import { Loader2 } from 'lucide-react'; import EmployerLayout from './components/EmployerLayout'; -import HelpCenter from './pages/HelpCenter'; import ErrorBoundary from './components/ErrorBoundary'; import ErrorFallback from './components/ErrorFallback'; -import Settings from './pages/Settings'; -import WebhookSettings from './pages/WebhookSettings'; -import CustomReportBuilder from './pages/CustomReportBuilder'; -import CrossAssetPayment from './pages/CrossAssetPayment'; -import TransactionHistory from './pages/TransactionHistory'; -import AdminPanel from './pages/AdminPanel'; -import VestingEscrow from './pages/VestingEscrow'; -import RevenueSplitDashboard from './pages/RevenueSplitDashboard'; -import Forecasting from './pages/Forecasting'; -import TaxComplianceWizard from './pages/TaxComplianceWizard'; - -import EmployeePortal from './pages/EmployeePortal'; -import Login from './pages/Login'; -import AuthCallback from './pages/AuthCallback'; import { useTranslation } from 'react-i18next'; import { contractService } from './services/contracts'; +// Lazy-loaded page components for route-level code splitting +const Home = lazy(() => import('./pages/Home')); +const Debugger = lazy(() => import('./pages/Debugger')); +const PayrollScheduler = lazy(() => import('./pages/PayrollScheduler')); +const EmployeeEntry = lazy(() => import('./pages/EmployeeEntry')); +const HelpCenter = lazy(() => import('./pages/HelpCenter')); +const Settings = lazy(() => import('./pages/Settings')); +const WebhookSettings = lazy(() => import('./pages/WebhookSettings')); +const CustomReportBuilder = lazy(() => import('./pages/CustomReportBuilder')); +const CrossAssetPayment = lazy(() => import('./pages/CrossAssetPayment')); +const TransactionHistory = lazy(() => import('./pages/TransactionHistory')); +const AdminPanel = lazy(() => import('./pages/AdminPanel')); +const VestingEscrow = lazy(() => import('./pages/VestingEscrow')); +const RevenueSplitDashboard = lazy(() => import('./pages/RevenueSplitDashboard')); +const Forecasting = lazy(() => import('./pages/Forecasting')); +const TaxComplianceWizard = lazy(() => import('./pages/TaxComplianceWizard')); +const EmployeePortal = lazy(() => import('./pages/EmployeePortal')); +const Login = lazy(() => import('./pages/Login')); +const AuthCallback = lazy(() => import('./pages/AuthCallback')); +const NotFound = lazy(() => import('./pages/NotFound')); + +function PageLoader() { + return ( +
Loading…
+