import React, { Suspense } from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; import { ProtectedRoute } from './ProtectedRoute'; import { LoadingSpinner } from '../components/shared/LoadingSpinner'; import { AppShell } from '../components/layout'; // Lazy load the pages we actually have const LandingPage = React.lazy(() => import('../pages/public/LandingPage')); const LoginPage = React.lazy(() => import('../pages/public/LoginPage')); const RegisterPage = React.lazy(() => import('../pages/public/RegisterPage')); const DashboardPage = React.lazy(() => import('../pages/app/DashboardPage')); // Operations pages const InventoryPage = React.lazy(() => import('../pages/app/operations/inventory/InventoryPage')); const ProductionPage = React.lazy(() => import('../pages/app/operations/production/ProductionPage')); const RecipesPage = React.lazy(() => import('../pages/app/operations/recipes/RecipesPage')); const ProcurementPage = React.lazy(() => import('../pages/app/operations/procurement/ProcurementPage')); const OrdersPage = React.lazy(() => import('../pages/app/operations/orders/OrdersPage')); const POSPage = React.lazy(() => import('../pages/app/operations/pos/POSPage')); // Analytics pages const ForecastingPage = React.lazy(() => import('../pages/app/analytics/forecasting/ForecastingPage')); const SalesAnalyticsPage = React.lazy(() => import('../pages/app/analytics/sales-analytics/SalesAnalyticsPage')); const AIInsightsPage = React.lazy(() => import('../pages/app/analytics/ai-insights/AIInsightsPage')); const PerformanceAnalyticsPage = React.lazy(() => import('../pages/app/analytics/performance/PerformanceAnalyticsPage')); // Communications pages const AlertsPage = React.lazy(() => import('../pages/app/communications/alerts/AlertsPage')); const NotificationsPage = React.lazy(() => import('../pages/app/communications/notifications/NotificationsPage')); const PreferencesPage = React.lazy(() => import('../pages/app/communications/preferences/PreferencesPage')); // Settings pages const ProfilePage = React.lazy(() => import('../pages/app/settings/profile/ProfilePage')); const BakeryConfigPage = React.lazy(() => import('../pages/app/settings/bakery-config/BakeryConfigPage')); const SystemSettingsPage = React.lazy(() => import('../pages/app/settings/system/SystemSettingsPage')); const TeamPage = React.lazy(() => import('../pages/app/settings/team/TeamPage')); const TrainingPage = React.lazy(() => import('../pages/app/settings/training/TrainingPage')); // Data pages const WeatherPage = React.lazy(() => import('../pages/app/data/weather/WeatherPage')); const TrafficPage = React.lazy(() => import('../pages/app/data/traffic/TrafficPage')); const EventsPage = React.lazy(() => import('../pages/app/data/events/EventsPage')); // Onboarding pages const OnboardingSetupPage = React.lazy(() => import('../pages/app/onboarding/setup/OnboardingSetupPage')); const OnboardingUploadPage = React.lazy(() => import('../pages/app/onboarding/upload/OnboardingUploadPage')); const OnboardingAnalysisPage = React.lazy(() => import('../pages/app/onboarding/analysis/OnboardingAnalysisPage')); const OnboardingReviewPage = React.lazy(() => import('../pages/app/onboarding/review/OnboardingReviewPage')); export const AppRouter: React.FC = () => { return ( }> {/* Public Routes */} } /> } /> } /> {/* Protected Routes with AppShell Layout */} } /> } /> {/* Operations Routes */} } /> } /> } /> } /> } /> } /> {/* Analytics Routes */} } /> } /> } /> } /> {/* Communications Routes */} } /> } /> } /> {/* Settings Routes */} } /> } /> } /> } /> } /> {/* Data Routes */} } /> } /> } /> {/* Onboarding Routes */} } /> } /> } /> } /> {/* Default redirects */} } /> } /> ); }; export default AppRouter;