// frontend/src/App.jsx import React, { useEffect } from "react"; import { Routes, Route, useNavigate, useSearchParams } from "react-router-dom"; import { AuthProvider, useAuth } from "./contexts/AuthContext"; import Layout from "./Layout"; import Dashboard from "./pages/Dashboard"; import History from "./pages/History"; import APIKeys from "./pages/APIKeys"; import ShareHandler from "./pages/ShareHandler"; import LoginForm from "./components/auth/LoginForm"; // Auth callback handler component function AuthCallback() { const [searchParams] = useSearchParams(); const { handleAuthCallback } = useAuth(); const navigate = useNavigate(); useEffect(() => { const token = searchParams.get("token"); if (token) { handleAuthCallback(token); navigate("/"); } else { navigate("/"); } }, [searchParams, handleAuthCallback, navigate]); return (

Completing authentication...

); } // Protected route wrapper function ProtectedRoute({ children }) { const { isAuthenticated, loading } = useAuth(); if (loading) { return (

Loading...

); } if (!isAuthenticated) { return ; } return children; } function AppRoutes() { return ( } /> } /> } /> } /> } /> ); } export default function App() { return ( ); }