From d8be0340aab8cbe42c2ce8103f158ef350ce9c21 Mon Sep 17 00:00:00 2001 From: Propo41 Date: Mon, 27 Jan 2025 16:32:37 +0600 Subject: [PATCH] fixed a bug regarding preferred rooms not showing up --- client/src/components/RoomsDropdown.tsx | 26 ++++--------------- client/src/pages/Home/BookRoomView/index.tsx | 5 ++-- .../Home/MyEventsView/EditEventsView.tsx | 4 +-- server/src/calender/calender.service.ts | 2 +- 4 files changed, 10 insertions(+), 27 deletions(-) diff --git a/client/src/components/RoomsDropdown.tsx b/client/src/components/RoomsDropdown.tsx index 6b14504..be6f59a 100644 --- a/client/src/components/RoomsDropdown.tsx +++ b/client/src/components/RoomsDropdown.tsx @@ -18,12 +18,6 @@ interface DropdownProps { currentRoom?: IConferenceRoom; } -interface StyledMenuItemProps { - i: number; - option: RoomsDropdownOption; - currentRoom?: IConferenceRoom; -} - export interface RoomsDropdownOption { text: string; value: string; // the main value used for api calls @@ -32,9 +26,9 @@ export interface RoomsDropdownOption { isBusy?: boolean; } -const CustomMenuItem = ({ i, option, currentRoom }: StyledMenuItemProps) => { +const renderMenuItem = (option: RoomsDropdownOption, currentRoom?: IConferenceRoom) => { return ( - + { onChange(id, event.target.value); @@ -220,23 +213,14 @@ export default function RoomsDropdown({ sx, id, disabled, currentRoom, value, op )} - {options.preferred.length === 0 && preferences.floor && ( - No rooms available according to your preferences - )} - - {options.preferred.map((option, i) => ( - - ))} + {options.preferred.map((option) => renderMenuItem(option, currentRoom))} {options.others.length > 0 && ( - Others + Less preferred rooms )} - - {options.others.map((option, i) => ( - - ))} + {options.others.map((option) => renderMenuItem(option, currentRoom))} ); } diff --git a/client/src/pages/Home/BookRoomView/index.tsx b/client/src/pages/Home/BookRoomView/index.tsx index 4e3d97f..1a414ad 100644 --- a/client/src/pages/Home/BookRoomView/index.tsx +++ b/client/src/pages/Home/BookRoomView/index.tsx @@ -57,6 +57,7 @@ export default function BookRoomView({ onRoomBooked }: BookRoomViewProps) { duration: Number(preferences.duration), seats: preferences.seats, conference: false, + room: '', }); // Utilities and hooks @@ -145,14 +146,12 @@ export default function BookRoomView({ onRoomBooked }: BookRoomViewProps) { const data = res.data as IAvailableRooms; - console.log(data); - let roomEmail: string | undefined; let preferredRoomOptions: RoomsDropdownOption[] = []; let unPreferredRoomOptions: RoomsDropdownOption[] = []; if (data.preferred.length > 0 || data.others.length > 0) { - roomEmail = data.preferred[0].email || data.others[0].email; + roomEmail = (data.preferred?.[0] || data.others?.[0])?.email; preferredRoomOptions = createRoomDropdownOptions(data.preferred); unPreferredRoomOptions = createRoomDropdownOptions(data.others); } diff --git a/client/src/pages/Home/MyEventsView/EditEventsView.tsx b/client/src/pages/Home/MyEventsView/EditEventsView.tsx index 2d9d63d..39afd9a 100644 --- a/client/src/pages/Home/MyEventsView/EditEventsView.tsx +++ b/client/src/pages/Home/MyEventsView/EditEventsView.tsx @@ -148,7 +148,7 @@ export default function EditEventsView({ open, event, handleClose, currentRoom, if (currentRoom) { const filteredPreferredRooms = data.preferred.filter((item) => item.email !== currentRoom.email); - const filteredUnPreferredRooms = data.preferred.filter((item) => item.email !== currentRoom.email); + const filteredUnPreferredRooms = data.others.filter((item) => item.email !== currentRoom.email); preferredRoomOptions = createRoomDropdownOptions(filteredPreferredRooms); unPreferredRoomOptions = createRoomDropdownOptions(filteredUnPreferredRooms); @@ -168,7 +168,7 @@ export default function EditEventsView({ open, event, handleClose, currentRoom, } else { preferredRoomOptions = createRoomDropdownOptions(data.preferred); unPreferredRoomOptions = createRoomDropdownOptions(data.others); - const roomEmail = data.preferred[0].email || data.others[0].email; + const roomEmail = (data.preferred?.[0] || data.others?.[0])?.email; setFormData((prev) => { return { diff --git a/server/src/calender/calender.service.ts b/server/src/calender/calender.service.ts index 100adc5..d2f070c 100644 --- a/server/src/calender/calender.service.ts +++ b/server/src/calender/calender.service.ts @@ -193,7 +193,7 @@ export class CalenderService { } if (isEventRoomAvailable) { - if (isPreferredRoom[room.email]) { + if (isPreferredRoom[currentRoom.email]) { availableRooms.preferred.unshift(currentRoom); } else { availableRooms.others.unshift(currentRoom);