mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
89 lines
2.9 KiB
TypeScript
89 lines
2.9 KiB
TypeScript
import React from 'react';
|
|
import { Question } from 'gift-pegjs';
|
|
|
|
import TrueFalseQuestionDisplay from './TrueFalseQuestionDisplay/TrueFalseQuestionDisplay';
|
|
import MultipleChoiceQuestionDisplay from './MultipleChoiceQuestionDisplay/MultipleChoiceQuestionDisplay';
|
|
import NumericalQuestionDisplay from './NumericalQuestionDisplay/NumericalQuestionDisplay';
|
|
import ShortAnswerQuestionDisplay from './ShortAnswerQuestionDisplay/ShortAnswerQuestionDisplay';
|
|
import { AnswerType } from 'src/pages/Student/JoinRoom/JoinRoom';
|
|
// import useCheckMobileScreen from '../../services/useCheckMobileScreen';
|
|
|
|
interface QuestionProps {
|
|
question: Question;
|
|
handleOnSubmitAnswer?: (answer: AnswerType) => void;
|
|
showAnswer?: boolean;
|
|
answer?: AnswerType;
|
|
|
|
}
|
|
const QuestionDisplay: React.FC<QuestionProps> = ({
|
|
question,
|
|
handleOnSubmitAnswer,
|
|
showAnswer,
|
|
answer,
|
|
}) => {
|
|
// const isMobile = useCheckMobileScreen();
|
|
// const imgWidth = useMemo(() => {
|
|
// return isMobile ? '100%' : '20%';
|
|
// }, [isMobile]);
|
|
|
|
let questionTypeComponent = null;
|
|
switch (question?.type) {
|
|
case 'TF':
|
|
questionTypeComponent = (
|
|
<TrueFalseQuestionDisplay
|
|
question={question}
|
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
|
// showAnswer={showAnswer}
|
|
passedAnswer={answer}
|
|
/>
|
|
);
|
|
break;
|
|
case 'MC':
|
|
|
|
questionTypeComponent = (
|
|
<MultipleChoiceQuestionDisplay
|
|
question={question}
|
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
|
showAnswer={showAnswer}
|
|
passedAnswer={answer}
|
|
/>
|
|
);
|
|
break;
|
|
case 'Numerical':
|
|
if (question.choices) {
|
|
questionTypeComponent = (
|
|
<NumericalQuestionDisplay
|
|
question={question}
|
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
|
showAnswer={showAnswer}
|
|
passedAnswer={answer}
|
|
|
|
/>
|
|
);
|
|
}
|
|
break;
|
|
case 'Short':
|
|
questionTypeComponent = (
|
|
<ShortAnswerQuestionDisplay
|
|
question={question}
|
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
|
showAnswer={showAnswer}
|
|
passedAnswer={answer}
|
|
/>
|
|
);
|
|
break;
|
|
}
|
|
return (
|
|
<div className="question-container">
|
|
{questionTypeComponent ? (
|
|
<>
|
|
{questionTypeComponent}
|
|
</>
|
|
) : (
|
|
<div>Question de type inconnue</div>
|
|
)}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default QuestionDisplay;
|