// NumericalQuestion.tsx import React, { useState } from 'react'; import Latex from 'react-latex'; import '../questionStyle.css'; import { Button, TextField } from '@mui/material'; type CorrectAnswer = { numberHigh?: number; numberLow?: number; number?: number; type: string; }; interface Props { questionTitle: string; correctAnswers: CorrectAnswer; globalFeedback?: string | undefined; handleOnSubmitAnswer?: (answer: number) => void; showAnswer?: boolean; } const NumericalQuestion: React.FC = (props) => { const { questionTitle, correctAnswers, showAnswer, handleOnSubmitAnswer, globalFeedback } = props; const [answer, setAnswer] = useState(); const correctAnswer = correctAnswers.type === 'high-low' ? `Entre ${correctAnswers.numberLow} et ${correctAnswers.numberHigh}` : correctAnswers.number; return (
{questionTitle}
{showAnswer ? ( <>
{correctAnswer}
{globalFeedback &&
{globalFeedback}
} ) : ( <>
) => { setAnswer(e.target.valueAsNumber); }} inputProps={{ 'data-testid': 'number-input' }} />
{globalFeedback && showAnswer && (
{globalFeedback}
)} {handleOnSubmitAnswer && ( )} )}
); }; export default NumericalQuestion;