"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 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 { setStatus("error"); setResult(data); } } catch (err) { setStatus("error"); setResult({ error: err.message || "Network request failed" }); } }; // Always show diagnostics when there's a result (even if validation failed) const hasDiagnostics = result && (result.reconstruction || result.modelName || result.responseDurationMs !== undefined); return (