import React, { useState } from 'react'; export interface MultipleChoiceQuestionProps { question: string; choices: string[]; correctAnswer?: string; showFeedback?: boolean; onchange: (value: { answer: string; isCorrect?: boolean }) => void; } export const MultipleChoiceQuestion: React.FC = ({ question, choices, correctAnswer, showFeedback = false, onchange }) => { const [selectedAnswer, setSelectedAnswer] = useState(''); const [hasAnswered, setHasAnswered] = useState(false); const handleAnswerSelect = (answer: string) => { setSelectedAnswer(answer); setHasAnswered(true); const isCorrect = correctAnswer ? answer === correctAnswer : undefined; onchange({ answer, isCorrect }); }; const getChoiceClassName = (choice: string) => { let className = 'mcq-choice'; if (hasAnswered && showFeedback && correctAnswer) { if (choice === correctAnswer) { className += ' mcq-choice-correct'; } else if (choice === selectedAnswer && choice !== correctAnswer) { className += ' mcq-choice-incorrect'; } } else if (choice === selectedAnswer) { className += ' mcq-choice-selected'; } return className; }; return (
{question}
{choices.map((choice, index) => ( ))}
{hasAnswered && showFeedback && selectedAnswer && (
{correctAnswer ? (selectedAnswer === correctAnswer ? '✓ Correct!' : `✗ Incorrect. The correct answer is: ${correctAnswer}`) : `You selected: ${selectedAnswer}` }
)}
); };