import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { Toaster } from 'react-hot-toast'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import HomePage from './pages/HomePage'; import LoginPage from './pages/LoginPage'; import RegisterPage from './pages/RegisterPage'; import VerifyEmailPage from './pages/VerifyEmailPage'; import ForgotPasswordPage from './pages/ForgotPasswordPage'; import ResetPasswordPage from './pages/ResetPasswordPage'; import DashboardPage from './pages/DashboardPage'; import EventsPage from './pages/EventsPage'; import EventChatPage from './pages/EventChatPage'; import EventDetailsPage from './pages/admin/EventDetailsPage'; import EventCheckinPage from './pages/EventCheckinPage'; import MatchChatPage from './pages/MatchChatPage'; import MatchesPage from './pages/MatchesPage'; import RatePartnerPage from './pages/RatePartnerPage'; import HistoryPage from './pages/HistoryPage'; import ProfilePage from './pages/ProfilePage'; import PublicProfilePage from './pages/PublicProfilePage'; import ActivityLogsPage from './pages/admin/ActivityLogsPage'; import ContactMessagesPage from './pages/admin/ContactMessagesPage'; import ContactPage from './pages/ContactPage'; import AboutUsPage from './pages/AboutUsPage'; import HowItWorksPage from './pages/HowItWorksPage'; import NotFoundPage from './pages/NotFoundPage'; import VerificationBanner from './components/common/VerificationBanner'; import InstallPWA from './components/pwa/InstallPWA'; // Protected Route Component with Verification Banner const ProtectedRoute = ({ children }) => { const { isAuthenticated, loading } = useAuth(); if (loading) { return (
Loading...
); } if (!isAuthenticated) { return ; } return ( <> {children} ); }; // Public Route Component (redirect to dashboard if already logged in) const PublicRoute = ({ children }) => { const { isAuthenticated, loading } = useAuth(); if (loading) { return (
Loading...
); } if (isAuthenticated) { return ; } return children; }; function App() { return ( {/* PWA Install Prompt */} {/* Toast Notifications */} {/* Public Routes */} } /> } /> } /> } /> } /> {/* Protected Routes */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Admin Routes */} } /> } /> {/* Home Page */} } /> {/* Contact Page - Public route */} } /> {/* About Us Page - Public route */} } /> {/* How It Works Page - Public route */} } /> {/* Public Profile - /u/username format (no auth required) */} } /> {/* 404 Not Found - Catch all unmatched routes */} } /> ); } export default App;