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 BenchmarkEvaluation from "../components/BenchmarkEvaluation"; 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( "Session ID manquante pour l'évaluation, redirection vers l'accueil" ); setIsValidSession(false); return; } // Si c'est un document précalculé, on le considère comme valide directement if (isDefault) { setIsLoading(false); return; } const checkSession = async () => { try { const response = await fetch( `http://localhost:3001/benchmark-questions/${sessionId}` ); if (!response.ok) { console.error( `Session invalide ou erreur serveur: ${response.status}` ); setIsValidSession(false); } } catch (error) { console.error("Erreur lors de la vérification de la session:", error); setIsValidSession(false); } finally { setIsLoading(false); } }; checkSession(); }, [sessionId, isDefault]); const handleEvaluationComplete = (result) => { console.log("Évaluation terminée:", result); // La redirection est gérée par le composant BenchmarkEvaluation }; if (!isValidSession) { return ; } return ( <> {isLoading ? ( ) : ( )} ); } export default BenchmarkEvaluationPage;