import React, { useEffect } from "react"; import { Routes, Route, Navigate, useNavigate } from "react-router-dom"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; import { AuthContext, useAuthProvider } from "./hooks/useAuth"; import { ThemeProvider, useTheme } from "./hooks/useTheme"; import { Layout } from "./components/Layout"; import { Login } from "./pages/Login"; import { Overview } from "./pages/Overview"; import { Dashboard } from "./pages/Dashboard"; import { PreviewDetail } from "./pages/PreviewDetail"; import { Settings } from "./pages/Settings"; import { Repos } from "./pages/Repos"; import { RepoConfig } from "./pages/RepoConfig"; import { Admin } from "./pages/Admin"; import { SetupWizard } from "./pages/SetupWizard"; import { Privacy } from "./pages/Privacy"; import { Loader2 } from "lucide-react"; function ProtectedRoute({ children }: { children: React.ReactNode }) { const { user, loading } = React.useContext(AuthContext); const navigate = useNavigate(); useEffect(() => { if (!loading && !user) navigate("/login"); }, [user, loading, navigate]); if (loading) return (