From d995b259e3ffc9e0fcab73bac379f9070e44fdb3 Mon Sep 17 00:00:00 2001 From: Louis-Antoine Caron Date: Sat, 6 Apr 2024 19:25:30 -0400 Subject: [PATCH] fix bug for user join --- .../pages/Teacher/ManageRoom/ManageRoom.tsx | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx index 6778b45..4ae31ac 100644 --- a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx +++ b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx @@ -98,25 +98,7 @@ const ManageRoom: React.FC = () => { console.log('Error creating room.'); }); - socket.on('user-joined', (user: UserType) => { - console.log("USER JOINED ! ") - console.log("quizMode: ", quizMode) - - setUsers((prevUsers) => [...prevUsers, user]); - - // This doesn't relaunch the quiz for users that connected late - if (quizMode === 'teacher') { - console.log("TEACHER") - - webSocketService.nextQuestion(roomName, currentQuestion); - - } else if (quizMode === 'student') { - - console.log(quizQuestions); - webSocketService.launchStudentModeQuiz(roomName, quizQuestions); - - } - }); + socket.on('join-failure', (message) => { setConnectingError(message); setSocket(null); @@ -128,6 +110,22 @@ const ManageRoom: React.FC = () => { setSocket(socket); }; + useEffect(() => { + // This is here to make sure the correct value is sent when user join + if (socket) { + socket.on('user-joined', (user: UserType) => { + + setUsers((prevUsers) => [...prevUsers, user]); + + if (quizMode === 'teacher') { + webSocketService.nextQuestion(roomName, currentQuestion); + } else if (quizMode === 'student') { + webSocketService.launchStudentModeQuiz(roomName, quizQuestions); + } + }); + } + }, [currentQuestion, quizQuestions]); + const nextQuestion = () => { if (!quizQuestions || !currentQuestion || !quiz?.content) return;