fix: preserve conversation after update

This commit is contained in:
2026-08-03 19:23:06 +01:00
parent 007f5ac286
commit f5cbf4b629
2 changed files with 12 additions and 3 deletions
+7 -3
View File
@@ -365,6 +365,7 @@ export default function ReasoningWorkspace({
answer, answer,
setAnswer, setAnswer,
onAnswerSubmit, onAnswerSubmit,
lastSubmittedAnswer,
}) { }) {
const { elapsed: startElapsed, currentMessage: startMsg } = useLoadingStatus( const { elapsed: startElapsed, currentMessage: startMsg } = useLoadingStatus(
INITIAL_MESSAGES, INITIAL_MESSAGES,
@@ -376,11 +377,14 @@ export default function ReasoningWorkspace({
updateStatus === "loading" updateStatus === "loading"
); );
const isUpdating = updateStatus === "loading";
const hasSelectedQuestion = Boolean(result?.selectedQuestion);
const canAnswer = const canAnswer =
status === "success" && status === "success" &&
updateStatus === "idle" && !isUpdating &&
Boolean(result?.situationGraph) && Boolean(result?.situationGraph) &&
Boolean(result?.selectedQuestion); hasSelectedQuestion;
const selectedQ = result?.selectedQuestion ?? null; const selectedQ = result?.selectedQuestion ?? null;
const graph = result?.situationGraph ?? null; const graph = result?.situationGraph ?? null;
@@ -425,7 +429,7 @@ export default function ReasoningWorkspace({
<> <>
{/* ── Post-update acknowledgement ─────────────── */} {/* ── Post-update acknowledgement ─────────────── */}
{updateStatus === "success" && graph && ( {updateStatus === "success" && graph && (
<UpdateAcknowledgement answer={answer} updateResult={result} /> <UpdateAcknowledgement answer={lastSubmittedAnswer} updateResult={result} />
)} )}
{/* Completion state (only when there is no next question and nothing remains) */} {/* Completion state (only when there is no next question and nothing remains) */}
+5
View File
@@ -188,6 +188,7 @@ export default function ScenarioForm() {
const [updateStatus, setUpdateStatus] = useState("idle"); // idle | loading | error | success const [updateStatus, setUpdateStatus] = useState("idle"); // idle | loading | error | success
const [updateError, setUpdateError] = useState(null); const [updateError, setUpdateError] = useState(null);
const [updateResult, setUpdateResult] = useState(null); const [updateResult, setUpdateResult] = useState(null);
const [lastSubmittedAnswer, setLastSubmittedAnswer] = useState("");
const textareaRef = useRef(null); const textareaRef = useRef(null);
const { elapsed: startElapsed, currentMessage: startMsg } = useLoadingStatus( const { elapsed: startElapsed, currentMessage: startMsg } = useLoadingStatus(
@@ -206,6 +207,8 @@ export default function ScenarioForm() {
setResult(null); setResult(null);
setAnswer(""); setAnswer("");
setUpdateStatus("idle"); setUpdateStatus("idle");
setUpdateResult(null);
setLastSubmittedAnswer("");
setUpdateError(null); setUpdateError(null);
setResult(null); setResult(null);
setUpdateResult(null); setUpdateResult(null);
@@ -240,6 +243,7 @@ export default function ScenarioForm() {
setUpdateStatus("loading"); setUpdateStatus("loading");
setUpdateError(null); setUpdateError(null);
setLastSubmittedAnswer(answer.trim());
const submission = await submitAnswerForUpdateCase(fetch, { const submission = await submitAnswerForUpdateCase(fetch, {
situationGraph: result?.situationGraph, situationGraph: result?.situationGraph,
@@ -337,6 +341,7 @@ export default function ScenarioForm() {
answer={answer} answer={answer}
setAnswer={setAnswer} setAnswer={setAnswer}
onAnswerSubmit={handleUpdate} onAnswerSubmit={handleUpdate}
lastSubmittedAnswer={lastSubmittedAnswer}
/> />
)} )}