From 68fce3ab46eb6a43cf727337bca774fe2f29df97 Mon Sep 17 00:00:00 2001 From: bconti123 Date: Mon, 20 Oct 2025 00:25:16 -0700 Subject: [PATCH 1/7] Add handleClick --- .../manageProjects/editMeetingTimes.jsx | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index 655fabb8b..abaa3be69 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useEffect, useState } from 'react'; import '../../sass/ManageProjects.scss'; import { useSnackbar } from '../../context/snackbarContext'; import EditableMeeting from './editableMeeting'; @@ -16,7 +16,21 @@ const EditMeetingTimes = ({ updateRecurringEvent, }) => { const [formErrors, setFormErrors] = useState({}); + const [open, setOpen] = useState(false); const { showSnackbar } = useSnackbar(); + + useEffect(() => { + if (selectedEvent) { + setOpen(true); + } + }, [selectedEvent]); + + const handleClose = () => { + setOpen(false); + setFormErrors(null); + setSelectedEvent(null); + }; + const handleEventUpdate = ( eventID, values, @@ -80,17 +94,19 @@ const EditMeetingTimes = ({ updateRecurringEvent(theUpdatedEvent, eventID); showSnackbar("Recurring event updated", 'info') - setSelectedEvent(null); + handleClose(); } setFormErrors(errors); }; const handleEventDelete = (eventID) => async () => { deleteRecurringEvent(eventID); - setSelectedEvent(null); showSnackbar("Recurring event deleted", 'info'); + handleClose(); }; + + return (
- {selectedEvent && ( - - )} -
+ {selectedEvent && ( + + )} + + + ); }; -export default EditMeetingTimes; \ No newline at end of file +export default EditMeetingTimes; From 1dccdd86e10bff58b831f1514f14f104616d39bd Mon Sep 17 00:00:00 2001 From: bconti123 Date: Mon, 20 Oct 2025 11:05:47 -0700 Subject: [PATCH 3/7] Add aria to Modal component --- .../components/manageProjects/editMeetingTimes.jsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index cbe52547e..4a77adc93 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -109,7 +109,12 @@ const EditMeetingTimes = ({ }; return ( - + {selectedEvent && ( From bb41738ca3f2606e076383c823f7365f5f1d36a3 Mon Sep 17 00:00:00 2001 From: bconti123 Date: Mon, 20 Oct 2025 11:10:52 -0700 Subject: [PATCH 4/7] Fixed top --- client/src/components/manageProjects/editMeetingTimes.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index 4a77adc93..cee9f898f 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -119,7 +119,7 @@ const EditMeetingTimes = ({ className="modal-box" sx={{ position: 'absolute', - top: '45%', + top: '42%', left: '50%', transform: 'translate(-50%, -50%)', width: 450, From bfea75b0af4db726a641e8fb4d650392b467349a Mon Sep 17 00:00:00 2001 From: bconti123 Date: Wed, 12 Nov 2025 12:44:44 -0800 Subject: [PATCH 5/7] Update code based on PR review. --- .../manageProjects/editMeetingTimes.jsx | 105 +++++++++--------- 1 file changed, 50 insertions(+), 55 deletions(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index cee9f898f..946d2420f 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -23,6 +23,8 @@ const EditMeetingTimes = ({ useEffect(() => { if (selectedEvent) { setOpen(true); + } else { + setOpen(false); } }, [selectedEvent]); @@ -32,75 +34,68 @@ const EditMeetingTimes = ({ setSelectedEvent(null); }; - const handleEventUpdate = - ( - eventID, - values, - // startTimeOriginal, - // durationOriginal - ) => - async () => { - const errors = validateEventForm(values, projectToEdit); - if (!errors) { - let theUpdatedEvent = {}; - - if (values.name) { - theUpdatedEvent = { - ...theUpdatedEvent, - name: values.name, - }; - } - - if (values.eventType) { - theUpdatedEvent = { - ...theUpdatedEvent, - eventType: values.eventType, - }; - } + const handleEventUpdate = (eventID, values) => async () => { + const errors = validateEventForm(values, projectToEdit); + if (!errors) { + let theUpdatedEvent = {}; + if (values.name) { theUpdatedEvent = { ...theUpdatedEvent, - description: values.description, + name: values.name, }; + } - if (values.videoConferenceLink) { - theUpdatedEvent = { - ...theUpdatedEvent, - videoConferenceLink: values.videoConferenceLink, - }; - } - - // Set updated date to today and add it to the object - const updatedDate = new Date().toISOString(); + if (values.eventType) { theUpdatedEvent = { ...theUpdatedEvent, - updatedDate, + eventType: values.eventType, }; + } - // Find next occurance of Day in the future - // Assign new start time and end time - const date = findNextOccuranceOfDay(values.day); - const startTimeDate = timeConvertFromForm(date, values.startTime); - const endTime = addDurationToTime(startTimeDate, values.duration); - - // Revert timestamps to GMT - const startDateTimeGMT = new Date(startTimeDate).toISOString(); - const endTimeGMT = new Date(endTime).toISOString(); + theUpdatedEvent = { + ...theUpdatedEvent, + description: values.description, + }; + if (values.videoConferenceLink) { theUpdatedEvent = { ...theUpdatedEvent, - date: startDateTimeGMT, - startTime: startDateTimeGMT, - endTime: endTimeGMT, - duration: values.duration, + videoConferenceLink: values.videoConferenceLink, }; - - updateRecurringEvent(theUpdatedEvent, eventID); - showSnackbar('Recurring event updated', 'info'); - handleClose(); } - setFormErrors(errors); - }; + + // Set updated date to today and add it to the object + const updatedDate = new Date().toISOString(); + theUpdatedEvent = { + ...theUpdatedEvent, + updatedDate, + }; + + // Find next occurrence of Day in the future + // Assign new start time and end time + const date = findNextOccuranceOfDay(values.day); + const startTimeDate = timeConvertFromForm(date, values.startTime); + const endTime = addDurationToTime(startTimeDate, values.duration); + + // Revert timestamps to GMT + const startDateTimeGMT = new Date(startTimeDate).toISOString(); + const endTimeGMT = new Date(endTime).toISOString(); + + theUpdatedEvent = { + ...theUpdatedEvent, + date: startDateTimeGMT, + startTime: startDateTimeGMT, + endTime: endTimeGMT, + duration: values.duration, + }; + + updateRecurringEvent(theUpdatedEvent, eventID); + showSnackbar('Recurring event updated', 'info'); + handleClose(); + } + setFormErrors(errors); + }; const handleEventDelete = (eventID) => async () => { deleteRecurringEvent(eventID); From cf0d2ce18d7ba2b50f98768d4d01e73c5ea33e4d Mon Sep 17 00:00:00 2001 From: bconti123 Date: Mon, 24 Nov 2025 14:02:30 -0800 Subject: [PATCH 6/7] Remove ARIA attributes --- client/src/components/manageProjects/editMeetingTimes.jsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index 946d2420f..d21d4940c 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -104,12 +104,7 @@ const EditMeetingTimes = ({ }; return ( - + Date: Tue, 25 Nov 2025 14:55:03 -0800 Subject: [PATCH 7/7] Removed useEffect and changed useState to Boolean. --- .../components/manageProjects/editMeetingTimes.jsx | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/client/src/components/manageProjects/editMeetingTimes.jsx b/client/src/components/manageProjects/editMeetingTimes.jsx index d21d4940c..ad225cf2d 100644 --- a/client/src/components/manageProjects/editMeetingTimes.jsx +++ b/client/src/components/manageProjects/editMeetingTimes.jsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useState } from 'react'; import '../../sass/ManageProjects.scss'; import { useSnackbar } from '../../context/snackbarContext'; import EditableMeeting from './editableMeeting'; @@ -17,19 +17,10 @@ const EditMeetingTimes = ({ updateRecurringEvent, }) => { const [formErrors, setFormErrors] = useState({}); - const [open, setOpen] = useState(false); + const open = Boolean(selectedEvent); const { showSnackbar } = useSnackbar(); - useEffect(() => { - if (selectedEvent) { - setOpen(true); - } else { - setOpen(false); - } - }, [selectedEvent]); - const handleClose = () => { - setOpen(false); setFormErrors(null); setSelectedEvent(null); };