import React, { useEffect, useState } from 'react'; import '../questionStyle.css'; import { Button, TextField } from '@mui/material'; import { FormattedTextTemplate } from '../../GiftTemplate/templates/TextTypeTemplate'; import { ShortAnswerQuestion } from 'gift-pegjs'; import { AnswerType } from 'src/pages/Student/JoinRoom/JoinRoom'; interface Props { question: ShortAnswerQuestion; handleOnSubmitAnswer?: (answer: AnswerType) => void; showAnswer?: boolean; passedAnswer?: AnswerType; } const ShortAnswerQuestionDisplay: React.FC = (props) => { const { question, showAnswer, handleOnSubmitAnswer, passedAnswer } = props; const [answer, setAnswer] = useState(passedAnswer || ''); const [isGoodAnswer, setisGoodAnswer] = useState(false); useEffect(() => { if (passedAnswer !== undefined) { setAnswer(passedAnswer); } }, [passedAnswer]); useEffect(() => { checkAnswer(); }, [answer]); const checkAnswer = () => { const isCorrect = question.choices.some((choice) => String(choice.text).toLowerCase() === String(answer).toLowerCase()); setisGoodAnswer(isCorrect); }; return (
{showAnswer && (
{isGoodAnswer ? '✅ Correct! ' : '❌ Incorrect!'}
Question :
)}
{showAnswer ? ( <>
Réponse(s) accepté(es):
{question.choices.map((choice) => (
{choice.text}
))}
Votre réponse est:
{answer}
{question.formattedGlobalFeedback &&
} ) : ( <>
{ setAnswer(e.target.value); }} disabled={showAnswer} aria-label="short-answer-input" />
{handleOnSubmitAnswer && ( )} )}
); }; export default ShortAnswerQuestionDisplay;