import React from "react"; import { BrowserRouter as Router, Routes, Route, Navigate, } from "react-router-dom"; import Home from "./pages/home"; import Dashboard from "./pages/dashboard"; import Notes from "./pages/note"; import AIInterview from "./pages/AiInterview"; import Quize from "./pages/quize"; import Sidebar from "./components/dashboard/Sidebar"; import { AuthProvider, useAuth } from "./components/context/AuthContext"; import ProtectedRoute from "./routes/ProtectedRoute"; import { Loader2 } from "lucide-react"; // Layout for authenticated users const DashboardLayout = () => { return (
} /> } /> } /> } /> } />
); }; // Wrapper for Home to handle "If logged in, go to dashboard" logic const HomeWrapper = () => { const { isAuthenticated, login } = useAuth(); if (isAuthenticated) return ; return ; }; // Main Routing Logic extracted to use AuthContext const AppRoutes = () => { const { isLoading } = useAuth(); // 1. Show a loading spinner while checking auth state // This prevents the "flash" of redirecting to home/dashboard on reload if (isLoading) { return (
); } return ( {/* Public Home */} } /> {/* Protected Dashboard Routes */} } /> ); }; const App: React.FC = () => { return ( ); }; export default App;