mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
Merge pull request #49 from louis-antoine-etsmtl/fix-user-join-room-bug
Fix user join room bug
This commit is contained in:
commit
a8702d0cc3
2 changed files with 18 additions and 26 deletions
|
|
@ -42,24 +42,20 @@ const JoinRoom: React.FC = () => {
|
||||||
console.log('Successfully joined the room.');
|
console.log('Successfully joined the room.');
|
||||||
});
|
});
|
||||||
socket.on('next-question', (question: QuestionType) => {
|
socket.on('next-question', (question: QuestionType) => {
|
||||||
console.log("NEXT MODE!")
|
|
||||||
setQuizMode('teacher');
|
setQuizMode('teacher');
|
||||||
setIsWaitingForTeacher(false);
|
setIsWaitingForTeacher(false);
|
||||||
setQuestion(question);
|
setQuestion(question);
|
||||||
});
|
});
|
||||||
socket.on('launch-student-mode', (questions: QuestionType[]) => {
|
socket.on('launch-student-mode', (questions: QuestionType[]) => {
|
||||||
console.log("STODENT MODE!")
|
|
||||||
setQuizMode('student');
|
setQuizMode('student');
|
||||||
setIsWaitingForTeacher(false);
|
setIsWaitingForTeacher(false);
|
||||||
setQuestions(questions);
|
setQuestions(questions);
|
||||||
setQuestion(questions[0]);
|
setQuestion(questions[0]);
|
||||||
});
|
});
|
||||||
socket.on('end-quiz', () => {
|
socket.on('end-quiz', () => {
|
||||||
console.log("END!")
|
|
||||||
disconnect();
|
disconnect();
|
||||||
});
|
});
|
||||||
socket.on('join-failure', (message) => {
|
socket.on('join-failure', (message) => {
|
||||||
console.log("BIG FAIL!")
|
|
||||||
console.log('Failed to join the room.');
|
console.log('Failed to join the room.');
|
||||||
setConnectionError(`Erreur de connexion : ${message}`);
|
setConnectionError(`Erreur de connexion : ${message}`);
|
||||||
setIsConnecting(false);
|
setIsConnecting(false);
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@ const ManageRoom: React.FC = () => {
|
||||||
setConnectingError('');
|
setConnectingError('');
|
||||||
const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL);
|
const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL);
|
||||||
|
|
||||||
console.log(socket);
|
|
||||||
socket.on('connect', () => {
|
socket.on('connect', () => {
|
||||||
webSocketService.createRoom();
|
webSocketService.createRoom();
|
||||||
});
|
});
|
||||||
|
|
@ -98,36 +97,33 @@ const ManageRoom: React.FC = () => {
|
||||||
console.log('Error creating room.');
|
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) => {
|
socket.on('join-failure', (message) => {
|
||||||
setConnectingError(message);
|
setConnectingError(message);
|
||||||
setSocket(null);
|
setSocket(null);
|
||||||
});
|
});
|
||||||
socket.on('user-disconnected', (userId: string) => {
|
socket.on('user-disconnected', (userId: string) => {
|
||||||
setUsers((prevUsers) => prevUsers.filter((user) => user.id !== userId));
|
setUsers((prevUsers) => prevUsers.filter((user) => user.id !== userId));
|
||||||
console.log(userId);
|
|
||||||
});
|
});
|
||||||
setSocket(socket);
|
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 = () => {
|
const nextQuestion = () => {
|
||||||
if (!quizQuestions || !currentQuestion || !quiz?.content) return;
|
if (!quizQuestions || !currentQuestion || !quiz?.content) return;
|
||||||
|
|
||||||
|
|
@ -203,7 +199,7 @@ const ManageRoom: React.FC = () => {
|
||||||
const showSelectedQuestion = (questionIndex: number) => {
|
const showSelectedQuestion = (questionIndex: number) => {
|
||||||
if (quiz?.content && quizQuestions) {
|
if (quiz?.content && quizQuestions) {
|
||||||
setCurrentQuestion(quizQuestions[questionIndex]);
|
setCurrentQuestion(quizQuestions[questionIndex]);
|
||||||
console.log(quizQuestions[questionIndex]);
|
|
||||||
if (quizMode === 'teacher') {
|
if (quizMode === 'teacher') {
|
||||||
webSocketService.nextQuestion(roomName, quizQuestions[questionIndex]);
|
webSocketService.nextQuestion(roomName, quizQuestions[questionIndex]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue