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