From a99664d8ff124482037b5f5e3a0f61e5f1fd1ebc Mon Sep 17 00:00:00 2001 From: NouhailaAater Date: Wed, 26 Feb 2025 14:07:18 -0500 Subject: [PATCH] traitement des erreurs et afficher un dialogue erreur si room existe --- .../src/pages/Teacher/Dashboard/Dashboard.tsx | 39 ++++++---- client/src/services/ApiService.tsx | 31 ++++---- server/__mocks__/AppError.js | 11 ++- server/constants/errorCodes.js | 35 ++++++++- server/controllers/room.js | 24 +++--- server/middleware/errorHandler.js | 29 ++++--- server/models/room.js | 76 ++++++++++--------- 7 files changed, 157 insertions(+), 88 deletions(-) diff --git a/client/src/pages/Teacher/Dashboard/Dashboard.tsx b/client/src/pages/Teacher/Dashboard/Dashboard.tsx index 109a24f..7a8ead9 100644 --- a/client/src/pages/Teacher/Dashboard/Dashboard.tsx +++ b/client/src/pages/Teacher/Dashboard/Dashboard.tsx @@ -27,7 +27,8 @@ import { Tooltip, NativeSelect, CardContent, - styled + styled, + DialogContentText } from '@mui/material'; import { Search, @@ -62,6 +63,8 @@ const Dashboard: React.FC = () => { const [openAddRoomDialog, setOpenAddRoomDialog] = useState(false); const [newRoomTitle, setNewRoomTitle] = useState(''); const { selectedRoom, selectRoom, createRoom } = useRooms(); + const [errorMessage, setErrorMessage] = useState(''); + const [showErrorDialog, setShowErrorDialog] = useState(false); // Filter quizzes based on search term // const filteredQuizzes = quizzes.filter(quiz => @@ -105,21 +108,25 @@ const Dashboard: React.FC = () => { }, []); const handleSelectRoom = (event: React.ChangeEvent) => { - if (event.target.value === "add-room") { + if (event.target.value === 'add-room') { setOpenAddRoomDialog(true); } else { selectRoom(event.target.value); } - }; + }; const handleSubmitCreateRoom = async () => { if (newRoomTitle.trim()) { - await createRoom(newRoomTitle); - // reload the list of rooms - const userRooms = await ApiService.getUserRooms(); - setRooms(userRooms as RoomType[]); - setOpenAddRoomDialog(false); - setNewRoomTitle(''); + try { + await createRoom(newRoomTitle); + const userRooms = await ApiService.getUserRooms(); + setRooms(userRooms as RoomType[]); + setOpenAddRoomDialog(false); + setNewRoomTitle(''); + } catch (error) { + setErrorMessage(error instanceof Error ? error.message : "Erreur inconnue"); + setShowErrorDialog(true); + } } }; @@ -391,10 +398,7 @@ const Dashboard: React.FC = () => {
- handleSelectRoom(e)}> {/* */} {rooms.map((room) => (