mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
68 lines
2.2 KiB
TypeScript
68 lines
2.2 KiB
TypeScript
|
|
// TeacherModeQuiz.tsx
|
||
|
|
import React, { useEffect, useState } from 'react';
|
||
|
|
|
||
|
|
import QuestionComponent from '../Questions/Question';
|
||
|
|
|
||
|
|
import '../../pages/Student/JoinRoom/joinRoom.css';
|
||
|
|
import { QuestionType } from '../../Types/QuestionType';
|
||
|
|
import { QuestionService } from '../../services/QuestionService';
|
||
|
|
import DisconnectButton from '../../components/DisconnectButton/DisconnectButton';
|
||
|
|
|
||
|
|
interface TeacherModeQuizProps {
|
||
|
|
questionInfos: QuestionType;
|
||
|
|
submitAnswer: (answer: string | number | boolean, idQuestion: string) => void;
|
||
|
|
disconnectWebSocket: () => void;
|
||
|
|
}
|
||
|
|
|
||
|
|
const TeacherModeQuiz: React.FC<TeacherModeQuizProps> = ({
|
||
|
|
questionInfos,
|
||
|
|
submitAnswer,
|
||
|
|
disconnectWebSocket
|
||
|
|
}) => {
|
||
|
|
const [isAnswerSubmitted, setIsAnswerSubmitted] = useState(false);
|
||
|
|
const [imageUrl, setImageUrl] = useState('');
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
setIsAnswerSubmitted(false);
|
||
|
|
setImageUrl(QuestionService.getImageSource(questionInfos.image));
|
||
|
|
}, [questionInfos]);
|
||
|
|
|
||
|
|
const handleOnSubmitAnswer = (answer: string | number | boolean) => {
|
||
|
|
const idQuestion = questionInfos.question.id || '-1';
|
||
|
|
submitAnswer(answer, idQuestion);
|
||
|
|
setIsAnswerSubmitted(true);
|
||
|
|
};
|
||
|
|
|
||
|
|
return (
|
||
|
|
<div className='room'>
|
||
|
|
<div className='roomHeader'>
|
||
|
|
|
||
|
|
<DisconnectButton
|
||
|
|
onReturn={disconnectWebSocket}
|
||
|
|
message={`Êtes-vous sûr de vouloir quitter?`} />
|
||
|
|
|
||
|
|
<div className='centerTitle'>
|
||
|
|
<div className='title'>Question {questionInfos.question.id}</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div className='dumb'></div>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
{isAnswerSubmitted ? (
|
||
|
|
<div>
|
||
|
|
En attente pour la prochaine question...
|
||
|
|
</div>
|
||
|
|
) : (
|
||
|
|
<QuestionComponent
|
||
|
|
imageUrl={imageUrl}
|
||
|
|
handleOnSubmitAnswer={handleOnSubmitAnswer}
|
||
|
|
question={questionInfos.question}
|
||
|
|
/>
|
||
|
|
)}
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
export default TeacherModeQuiz;
|