diff --git a/client/src/App.tsx b/client/src/App.tsx
index 7db21db..c1d862b 100644
--- a/client/src/App.tsx
+++ b/client/src/App.tsx
@@ -52,7 +52,7 @@ function App() {
} />
} />
} />
- } />
+ } />
{/* Pages espace étudiant */}
} />
diff --git a/client/src/pages/Teacher/Dashboard/Dashboard.tsx b/client/src/pages/Teacher/Dashboard/Dashboard.tsx
index 7a8ead9..d9265bf 100644
--- a/client/src/pages/Teacher/Dashboard/Dashboard.tsx
+++ b/client/src/pages/Teacher/Dashboard/Dashboard.tsx
@@ -367,7 +367,12 @@ const Dashboard: React.FC = () => {
};
const handleLancerQuiz = (quiz: QuizType) => {
- navigate(`/teacher/manage-room/${quiz._id}`);
+ if (selectedRoom) {
+ navigate(`/teacher/manage-room/${quiz._id}/${selectedRoom.title}`);
+ } else {
+ const randomSixDigit = Math.floor(100000 + Math.random() * 900000);
+ navigate(`/teacher/manage-room/${quiz._id}/${randomSixDigit}`);
+ }
};
const handleShareQuiz = async (quiz: QuizType) => {
diff --git a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx
index 81c3b60..4d61a33 100644
--- a/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx
+++ b/client/src/pages/Teacher/ManageRoom/ManageRoom.tsx
@@ -25,12 +25,13 @@ import ApiService from '../../../services/ApiService';
import { QuestionType } from 'src/Types/QuestionType';
import { useRooms } from '../ManageRoom/RoomContext';
import { Button } from '@mui/material';
+// import { use } from 'marked';
const ManageRoom: React.FC = () => {
const navigate = useNavigate();
const [socket, setSocket] = useState(null);
const [students, setStudents] = useState([]);
- const quizId = useParams<{ id: string }>();
+ const { quizId = '', roomName = '' } = useParams<{ quizId: string, roomName: string }>();
const [quizQuestions, setQuizQuestions] = useState();
const [quiz, setQuiz] = useState(null);
const [quizMode, setQuizMode] = useState<'teacher' | 'student'>('teacher');
@@ -39,7 +40,16 @@ const ManageRoom: React.FC = () => {
const [quizStarted, setQuizStarted] = useState(false);
const { selectedRoom } = useRooms();
- const [roomName, setRoomName] = useState(selectedRoom?.title || '');
+ useEffect(() => {
+ // verify that roomName argument is not null
+ if (!roomName || !quizId) {
+ window.alert(
+ `Une erreur est survenue.\n La salle ou le quiz n'a pas été spécifié.\nVeuillez réessayer plus tard.`
+ );
+ console.error('Room or Quiz not found for name:', roomName);
+ navigate('/teacher/dashboard');
+ }
+ }, [roomName, navigate]);
useEffect(() => {
if (selectedRoom && !socket) {
@@ -59,15 +69,15 @@ const ManageRoom: React.FC = () => {
}, []);
useEffect(() => {
- if (quizId.id) {
+ if (quizId) {
const fetchquiz = async () => {
- const quiz = await ApiService.getQuiz(quizId.id as string);
+ const quiz = await ApiService.getQuiz(quizId);
if (!quiz) {
window.alert(
- `Une erreur est survenue.\n Le quiz ${quizId.id} n'a pas été trouvé\nVeuillez réessayer plus tard`
+ `Une erreur est survenue.\n Le quiz ${quizId} n'a pas été trouvé\nVeuillez réessayer plus tard`
);
- console.error('Quiz not found for id:', quizId.id);
+ console.error('Quiz not found for id:', quizId);
navigate('/teacher/dashboard');
return;
}
@@ -87,9 +97,9 @@ const ManageRoom: React.FC = () => {
fetchquiz();
} else {
window.alert(
- `Une erreur est survenue.\n Le quiz ${quizId.id} n'a pas été trouvé\nVeuillez réessayer plus tard`
+ `Une erreur est survenue.\n Le quiz ${quizId} n'a pas été trouvé\nVeuillez réessayer plus tard`
);
- console.error('Quiz not found for id:', quizId.id);
+ console.error('Quiz not found for id:', quizId);
navigate('/teacher/dashboard');
return;
}
@@ -125,7 +135,8 @@ const ManageRoom: React.FC = () => {
});
socket.on('create-success', (roomName: string) => {
- setRoomName(roomName);
+ console.log(`Room created: ${roomName}`);
+ // setRoomName(roomName);
});
socket.on('user-joined', (student: StudentType) => {