diff --git a/src/features/Calendars/CalendarSlice.ts b/src/features/Calendars/CalendarSlice.ts index 6b1422f..289babc 100644 --- a/src/features/Calendars/CalendarSlice.ts +++ b/src/features/Calendars/CalendarSlice.ts @@ -56,9 +56,9 @@ export const putEventAsync = createAsyncThunk< >("calendars/putEvent", async ({ cal, newEvent }) => { const response = await putEvent(cal, newEvent); const calEvents = (await getCalendar(cal.id, { - start: formatDateToYYYYMMDDTHHMMSS(newEvent.start), + start: formatDateToYYYYMMDDTHHMMSS(new Date(newEvent.start)), end: formatDateToYYYYMMDDTHHMMSS( - new Date(newEvent.start.getTime() + 86400000) + new Date(new Date(newEvent.start).getTime() + 86400000) ), })) as Record; const events: CalendarEvent[] = calEvents._embedded["dav:item"].flatMap( diff --git a/src/features/Events/EventDisplay.tsx b/src/features/Events/EventDisplay.tsx index 777115d..01c8de6 100644 --- a/src/features/Events/EventDisplay.tsx +++ b/src/features/Events/EventDisplay.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { deleteEventAsync } from "../Calendars/CalendarSlice"; +import { deleteEventAsync, putEventAsync } from "../Calendars/CalendarSlice"; import { useAppDispatch, useAppSelector } from "../../app/hooks"; import { Popover, @@ -25,6 +25,7 @@ import CircleIcon from "@mui/icons-material/Circle"; import CancelIcon from "@mui/icons-material/Cancel"; import CheckCircleIcon from "@mui/icons-material/CheckCircle"; import { userAttendee } from "../User/userDataTypes"; +import { putEvent } from "./EventApi"; function EventDisplayModal({ eventId, @@ -74,6 +75,18 @@ function EventDisplayModal({ (a) => a.cal_address === event.organizer?.cal_address ); + function handleRSVP(rsvp: string) { + const newEvent = { + ...event, + attendee: event.attendee?.map((a) => + a.cal_address === user.userData.email ? { ...a, partstat: rsvp } : a + ), + }; + + dispatch(putEventAsync({ cal: calendar, newEvent })); + onClose({}, "backdropClick"); + } + return ( @@ -195,9 +208,36 @@ function EventDisplayModal({ Will you attend? - - - + + + )} diff --git a/src/features/Events/eventUtils.ts b/src/features/Events/eventUtils.ts index a592970..6751b78 100644 --- a/src/features/Events/eventUtils.ts +++ b/src/features/Events/eventUtils.ts @@ -98,7 +98,7 @@ export function calendarEventToJCal(event: CalendarEvent): any[] { "dtstart", { tzid }, event.allday ? "date" : "date-time", - formatDateToICal(event.start, event.allday ?? false), + formatDateToICal(new Date(event.start), event.allday ?? false), ], ["class", {}, "text", event.class ?? "PUBLIC"], [ @@ -117,7 +117,7 @@ export function calendarEventToJCal(event: CalendarEvent): any[] { "dtend", { tzid }, event.allday ? "date" : "date-time", - formatDateToICal(event.end, event.allday ?? false), + formatDateToICal(new Date(event.end), event.allday ?? false), ]); } if (event.organizer) {