import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { useEffect } from 'react'; import { useAuthStore } from './hooks/useAuth'; // Pages import HomePage from './pages/HomePage'; import ProgramsPage from './pages/ProgramsPage'; import LoginPage from './pages/LoginPage'; import RegisterPage from './pages/RegisterPage'; import OnboardingPage from './pages/OnboardingPage'; import DashboardPage from './pages/DashboardPage'; import MandatesPage from './pages/MandatesPage'; import PortfolioPage from './pages/PortfolioPage'; import AdminPage from './pages/AdminPage'; function ProtectedRoute({ children, adminOnly = false }: { children: React.ReactNode; adminOnly?: boolean }) { const { isAuthenticated, user } = useAuthStore(); if (!isAuthenticated) return ; if (adminOnly && user?.role !== 'admin') return ; return <>{children}; } export default function App() { const { fetchMe, isAuthenticated } = useAuthStore(); useEffect(() => { if (isAuthenticated) fetchMe(); }, []); return ( {/* Public */} } /> } /> } /> } /> {/* Onboarding */} } /> {/* Member */} } /> } /> } /> {/* Admin */} } /> {/* Fallback */} } /> ); }