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;