diff --git a/frontend/components/Course/Calendar/InstructorCalendar.tsx b/frontend/components/Course/Calendar/InstructorCalendar.tsx index 558037f2..4aa3166b 100644 --- a/frontend/components/Course/Calendar/InstructorCalendar.tsx +++ b/frontend/components/Course/Calendar/InstructorCalendar.tsx @@ -44,8 +44,8 @@ export default function InstructorCalendar(props: CalendarProps) { const handleSelectSlot = useCallback(async ({ start, end }) => { setNewEvent(true); - setStartField(new Date(start)); - setEndField(new Date(end)); + setStartField(start); + setEndField(end); }, []); return ( diff --git a/frontend/components/Course/Calendar/InstructorCalendarModals.tsx b/frontend/components/Course/Calendar/InstructorCalendarModals.tsx index a5da1cec..23b6cb9b 100644 --- a/frontend/components/Course/Calendar/InstructorCalendarModals.tsx +++ b/frontend/components/Course/Calendar/InstructorCalendarModals.tsx @@ -390,7 +390,6 @@ export const NewEventModal = (props: NewEventProps) => { size="small" open={show} as={Form} - onSubmit={handleCreateEvent} onClose={() => setModalState(false)} > New Event @@ -420,7 +419,7 @@ export const NewEventModal = (props: NewEventProps) => { - diff --git a/frontend/components/Home/Dashboard/EventSidebar.tsx b/frontend/components/Home/Dashboard/EventSidebar.tsx index 51cb0e9e..63b8356e 100644 --- a/frontend/components/Home/Dashboard/EventSidebar.tsx +++ b/frontend/components/Home/Dashboard/EventSidebar.tsx @@ -88,12 +88,39 @@ const EventSidebar = (props: EventSidebarProps) => { ); const occurrences = (data || []).map(apiOccurrenceToOccurrence); + const startOfHour = moment().startOf("hour").toISOString(); useEffect(() => { setFilter({ start: new Date(), end: moment().endOf("day").toDate(), }); - }, [moment().startOf("hour").toISOString()]); + }, [startOfHour]); + + const eventCards = occurrences + .filter((o) => !o.cancelled) + .sort((a, b) => a.start.getTime() - b.start.getTime()) + .map((o) => { + const courseIndex = getMembershipIndex( + memberships, + o.event.course_id + ); + if (courseIndex === -1) return undefined; + + return ( + + ); + }); + + const sidebarContent = + eventCards.length > 0 ? ( + eventCards + ) : ( +
You have no events today!
+ ); return ( @@ -109,33 +136,7 @@ const EventSidebar = (props: EventSidebarProps) => { ) : ( - occurrences - .sort( - (a, b) => - a.start.getTime() - b.start.getTime() - ) - .map((o) => { - const courseIndex = getMembershipIndex( - memberships, - o.event.course_id - ); - if (courseIndex === -1) return undefined; - - return ( - - ); - }) + sidebarContent )} diff --git a/frontend/hooks/data-fetching/calendar.ts b/frontend/hooks/data-fetching/calendar.ts index 4cf1705e..02489942 100644 --- a/frontend/hooks/data-fetching/calendar.ts +++ b/frontend/hooks/data-fetching/calendar.ts @@ -87,9 +87,11 @@ export const useOccurrences = (courseIds: number[], start: Date, end: Date) => { } ); + const filterStartString = filter.start.toISOString(); + const filterEndString = filter.end.toISOString(); useEffect(() => { mutate(undefined, undefined, { sendRequest: false }); - }, [filter.start.toISOString(), filter.end.toISOString()]); + }, [filterStartString, filterEndString]); return { data, diff --git a/frontend/types.tsx b/frontend/types.tsx index 0db706b3..3b064726 100644 --- a/frontend/types.tsx +++ b/frontend/types.tsx @@ -4,7 +4,7 @@ export interface Course { id: number; courseCode: string; department: string; - courseIdQueries: string; + courseTitle: string; description: string; semester: number; semesterPretty: string; @@ -233,9 +233,6 @@ export interface ApiOccurrence { event: ApiEvent; } -// export interface ApiOccurrence extends ApiPartialOccurrence { -// } - export interface Occurrence { id: number; title: string;