'use client' import React, { useState, useCallback } from 'react' interface Option { id: string text: string } interface QuizQuestionProps { question: string options: Option[] correctAnswer: string explanation?: string questionNumber: number totalQuestions: number onAnswer: (correct: boolean) => void isDark: boolean } export function QuizQuestion({ question, options, correctAnswer, explanation, questionNumber, totalQuestions, onAnswer, isDark, }: QuizQuestionProps) { const [selected, setSelected] = useState(null) const [revealed, setRevealed] = useState(false) const handleSelect = useCallback((optionId: string) => { if (revealed) return setSelected(optionId) setRevealed(true) const isCorrect = optionId === correctAnswer setTimeout(() => { onAnswer(isCorrect) setSelected(null) setRevealed(false) }, isCorrect ? 1000 : 2500) }, [revealed, correctAnswer, onAnswer]) const getOptionStyle = (optionId: string) => { if (!revealed) { return isDark ? 'bg-white/10 border-white/20 hover:bg-white/20 hover:border-white/30 text-white' : 'bg-white border-slate-200 hover:bg-slate-50 hover:border-slate-300 text-slate-900' } if (optionId === correctAnswer) { return isDark ? 'bg-green-500/20 border-green-400 text-green-200' : 'bg-green-50 border-green-500 text-green-800' } if (optionId === selected && optionId !== correctAnswer) { return isDark ? 'bg-red-500/20 border-red-400 text-red-200' : 'bg-red-50 border-red-500 text-red-800' } return isDark ? 'bg-white/5 border-white/10 text-white/40' : 'bg-slate-50 border-slate-200 text-slate-400' } return (
{/* Progress */}
Frage {questionNumber} / {totalQuestions}
{/* Question */}

{question}

{/* Options */}
{options.map((opt, idx) => ( ))}
{/* Explanation */} {revealed && explanation && (

{explanation}

)}
) }