From 6eb3a54ed07ccbd2325d11cacd07396cace5c462 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 8 Jan 2026 02:04:03 +0100 Subject: [PATCH] Handle question submission and update history --- client/src/components/QuizRunner.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/client/src/components/QuizRunner.tsx b/client/src/components/QuizRunner.tsx index e1f30cb..0321aa5 100644 --- a/client/src/components/QuizRunner.tsx +++ b/client/src/components/QuizRunner.tsx @@ -322,7 +322,16 @@ export default function QuizRunner({ defaultMode = 'all', defaultEntryId, autoSt }; const handleSubmit = (skip = false) => { - if (!currentQuestion || showResult) return; + if (!currentQuestion) return; + if (history[currentIndex]) { + // already answered; keep locked + setShowResult(true); + setShowExplanation(history[currentIndex]?.showExplanation || false); + setLastCorrect(history[currentIndex]?.correct || false); + setLastSkipped(history[currentIndex]?.skipped || false); + setResponse(history[currentIndex]?.response ?? null); + return; + } let correct = false; if (!skip) { if ((currentQuestion.type || '').startsWith('mc') || currentQuestion.type === 'choose_best_reply') { @@ -343,6 +352,11 @@ export default function QuizRunner({ defaultMode = 'all', defaultEntryId, autoSt setLastSkipped(skip); setShowResult(true); setShowExplanation(!correct); + setHistory((prev) => { + const next = [...prev]; + next[currentIndex] = { response, correct, skipped: skip, showExplanation: !correct }; + return next; + }); }; const goNext = () => {