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 */}
} />
);
}