import React from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { Toaster } from './components/ui/sonner'; import Landing from './pages/Landing'; import Register from './pages/Register'; import Login from './pages/Login'; import VerifyEmail from './pages/VerifyEmail'; import Dashboard from './pages/Dashboard'; import Profile from './pages/Profile'; import Events from './pages/Events'; import EventDetails from './pages/EventDetails'; import Plans from './pages/Plans'; import PaymentSuccess from './pages/PaymentSuccess'; import PaymentCancel from './pages/PaymentCancel'; import AdminDashboard from './pages/admin/AdminDashboard'; import AdminUsers from './pages/admin/AdminUsers'; import AdminUserView from './pages/admin/AdminUserView'; import AdminStaff from './pages/admin/AdminStaff'; import AdminMembers from './pages/admin/AdminMembers'; import AdminEvents from './pages/admin/AdminEvents'; import AdminApprovals from './pages/admin/AdminApprovals'; import AdminPlans from './pages/admin/AdminPlans'; import AdminLayout from './layouts/AdminLayout'; import { AuthProvider, useAuth } from './context/AuthContext'; const PrivateRoute = ({ children, adminOnly = false }) => { const { user, loading } = useAuth(); if (loading) { return
Loading...
; } if (!user) { return ; } if (adminOnly && user.role !== 'admin') { return ; } return children; }; function App() { return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); } export default App;