import React, { useState, useEffect } from "react"; import { Box, CircularProgress } from "@mui/material"; import { useNavigate, useSearchParams, Navigate } from "react-router-dom"; import Intro from "../components/Intro"; import Evaluation from "../components/Evaluation/Evaluation"; import API_CONFIG from "../config/api"; function BenchmarkEvaluationPage() { const navigate = useNavigate(); const [searchParams] = useSearchParams(); const sessionId = searchParams.get("session"); const isDefaultFromUrl = searchParams.get("isDefault") === "true"; const isDefault = isDefaultFromUrl || ["the-bitter-lesson", "hurricane-faq", "pokemon-guide"].includes(sessionId); const [isValidSession, setIsValidSession] = useState(true); const [isLoading, setIsLoading] = useState(true); useEffect(() => { if (!sessionId) { console.log("Missing session ID for evaluation, redirecting to home"); setIsValidSession(false); return; } // If it's a precalculated document, consider it valid directly if (isDefault) { setIsLoading(false); return; } const checkSession = async () => { try { const response = await fetch( `${API_CONFIG.BASE_URL}/benchmark-questions/${sessionId}` ); if (!response.ok) { console.error(`Invalid session or server error: ${response.status}`); setIsValidSession(false); } } catch (error) { console.error("Error checking session:", error); setIsValidSession(false); } finally { setIsLoading(false); } }; checkSession(); }, [sessionId, isDefault]); const handleEvaluationComplete = (result) => { console.log("Evaluation completed:", result); // Redirection is handled by the BenchmarkEvaluation component }; if (!isValidSession) { return ; } return ( <> {isLoading ? ( ) : ( )} ); } export default BenchmarkEvaluationPage;