"use client"; import { useState, useRef } from "react"; import ReconstructionView from "@/components/reconstruction-view"; import DiagnosticsView from "@/components/diagnostics-view"; const MAX_LENGTH = 10000; export default function ScenarioForm() { const [scenario, setScenario] = useState(""); const [status, setStatus] = useState("idle"); // idle | loading | error | success | partial const [result, setResult] = useState(null); const textareaRef = useRef(null); const handleSubmit = async (e) => { e.preventDefault(); setStatus("loading"); setResult(null); try { const res = await fetch("/api/analyse", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ scenario }), }); const data = await res.json(); if (res.ok && data.validationStatus === "valid") { setStatus("success"); setResult(data); } else if (data.success) { // Success in analysis but validation may be partial setStatus("success"); setResult(data); } else { setStatus("error"); setResult(data); } } catch (err) { setStatus("error"); setResult({ error: err.message || "Network request failed" }); } }; // Determine if we have meaningful content to display const hasClassification = result?.inputClassification; const hasReconstruction = result?.reconstruction; const hasNextQuestion = result?.nextQuestion; const hasEvidence = result?.evidence && result.evidence.length > 0; const hasMeaningfulContent = hasClassification || hasReconstruction || hasNextQuestion || hasEvidence; return (