import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate, useLocation } from 'react-router-dom'; import TopBar from './layouts/TopBar'; import Dashboard from './pages/Dashboard'; import Sourcing from './pages/Sourcing'; import Orders from './pages/Orders'; import Inventory from './pages/Inventory'; import Financial from './pages/Financial'; import Customers from './pages/Customers'; import Sales from './pages/Sales'; import Suppliers from './pages/Suppliers'; import Users from './pages/Users'; import Login from './pages/Login'; import Products from './pages/Products'; // New import Reports from './pages/Reports'; import Settings from './pages/Settings'; import { CRMProvider, useCRM } from './context/CRMContext'; import Sidebar from './layouts/Sidebar'; import Header from './layouts/Header'; import { useTheme } from './context/ThemeContext'; // Simple Layout Wrapper to handle Sidebar/Header display const AppLayout: React.FC = () => { const location = useLocation(); const { session, authLoading } = useCRM(); const { theme } = useTheme(); const isLoginPage = location.pathname === '/login'; const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false); // Moved to top level if (authLoading) { return (
); } if (!session && !isLoginPage) { return ; } if (session && isLoginPage) { return ; } if (isLoginPage) { return (
} />
); } // LAYOUT STRATEGIES // 1. SIMPLE / CLEAN (Light) -> Uses TopBar (ERP Style) if (theme === 'light') { return (
); } // 2. OCEAN / COMPLEX -> Uses Compact Sidebar (To be refined) or Modified TopBar if (theme === 'ocean') { return (
{/* Sidebar for Ocean */}
); } // 3. DARK / PRO (Default) -> Sidebar + Header (Glassmorphism) return (
setIsMobileMenuOpen(false)} />
{/* Background Blob Effect for Pro Theme */}
setIsMobileMenuOpen(!isMobileMenuOpen)} />
); }; // Extracted Routes to avoid duplication const AppRoutes = () => ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); import ErrorBoundary from './components/ErrorBoundary'; import { ThemeProvider } from './context/ThemeContext'; const App: React.FC = () => { return ( {/* Main Router Setup */} ); }; export default App;