import React from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider, useAuth } from './context/AuthContext'; import { ErrorBoundary } from './components/ErrorBoundary'; import { LoginPage } from './pages/LoginPage'; import { HomePage } from './pages/HomePage'; import { UserPage } from './pages/UserPage'; import { AdminPage } from './pages/AdminPage'; import { StoresPage } from './pages/StoresPage'; import { AnalyticsPage } from './pages/AnalyticsPage'; import { NutritionAnalyticsPage } from './pages/NutritionAnalyticsPage'; function ProtectedRoute({ children, allowedRoles }) { const { user, role } = useAuth(); if (!user) { return ; } const effectiveRole = role || (user.role === 'store' ? 'user' : user.role); if (allowedRoles && !allowedRoles.includes(effectiveRole)) { if (window.location.pathname === '/user') { return children; } return ; } return children; } export default function App() { return ( {/* Public Login Route */} } /> {/* Catalog Route - RESTRICTED TO ADMIN ONLY */} } /> {/* User Workspace Route */} } /> {/* Admin Panel Route - RESTRICTED TO ADMIN ONLY */} } /> {/* Store Intelligence Route */} } /> {/* Analytics Route */} } /> {/* Nutrition Intelligence Route */} } /> {/* Catch-all redirect */} } /> ); }