import { useState } from "react"; export default function QuestionCard({ frage, antworten, onNext, onCheck, isLast }) { const [selected, setSelected] = useState([]); const [checked, setChecked] = useState(false); // wurde „Überprüfen“ gedrückt const toggleAntwort = (idx) => { if (checked) return; // Sperre Änderungen nach Überprüfung setSelected((prev) => prev.includes(idx) ? prev.filter((i) => i !== idx) : [...prev, idx] ); }; const isCorrect = (idx) => antworten[idx].korrekt; const wasSelected = (idx) => selected.includes(idx); const handleCheck = () => { setChecked(true); const correct = antworten.every((antwort, idx) => { return antwort.korrekt === selected.includes(idx); }); if (onCheck) { onCheck(correct); } }; const handleNext = () => { setSelected([]); setChecked(false); onNext(); }; return (

{frage}

{antworten.map((antwort, idx) => { const korrekt = isCorrect(idx); const gewählt = wasSelected(idx); let style = ""; if (checked) { if (korrekt && gewählt) style = "bg-green-100 dark:bg-green-800 border-green-500"; else if (!korrekt && gewählt) style = "bg-red-100 dark:bg-red-800 border-red-500"; else if (korrekt && !gewählt) style = "bg-yellow-100 dark:bg-yellow-800 border-yellow-500"; else style = "bg-gray-50 dark:bg-gray-700"; } else { style = gewählt ? "bg-blue-100 dark:bg-blue-800 border-blue-500" : "bg-gray-50 dark:bg-gray-700"; } return ( ); })}
{!checked ? ( ) : ( )}
); }