diff --git a/app/calendar/api.ts b/app/calendar/api.ts
index bbeff9221..e80374d21 100644
--- a/app/calendar/api.ts
+++ b/app/calendar/api.ts
@@ -1,6 +1,7 @@
import { createRouter } from "pages/api/trpc/[trpc]";
import { throwIfNotLoggedIn } from "utils/api";
import { eventSchema } from "utils/validators/event";
+import * as z from "zod";
import service from "./service";
const plusApi = createRouter()
@@ -15,5 +16,26 @@ const plusApi = createRouter()
const user = throwIfNotLoggedIn(ctx.user);
return service.addEvent({ input, userId: user.id });
},
+ })
+ .mutation("editEvent", {
+ input: z.object({ event: eventSchema, eventId: z.number() }),
+ resolve({ ctx, input }) {
+ const user = throwIfNotLoggedIn(ctx.user);
+ console.log("input", input);
+ return service.editEvent({
+ ...input,
+ userId: user.id,
+ });
+ },
+ })
+ .mutation("deleteEvent", {
+ input: z.object({ eventId: z.number() }),
+ resolve({ ctx, input }) {
+ const user = throwIfNotLoggedIn(ctx.user);
+ return service.deleteEvent({
+ eventId: input.eventId,
+ userId: user.id,
+ });
+ },
});
export default plusApi;
diff --git a/app/calendar/components/CalendarPage.tsx b/app/calendar/components/CalendarPage.tsx
index 054c39ba3..785604b34 100644
--- a/app/calendar/components/CalendarPage.tsx
+++ b/app/calendar/components/CalendarPage.tsx
@@ -7,12 +7,14 @@ import { useMyTheme } from "hooks/common";
import { Fragment, useState } from "react";
import { trpc } from "utils/trpc";
import EventInfo from "./EventInfo";
-import { EventModal } from "./EventModal";
+import { EventModal, FormData } from "./EventModal";
export default function CalendarPage() {
const { gray } = useMyTheme();
const events = trpc.useQuery(["calendar.events"], { enabled: false });
- const [modalIsOpen, setModalIsOpen] = useState(false);
+ const [eventToEdit, setEventToEdit] = useState<
+ boolean | (FormData & { id: number })
+ >(false);
const [filter, setFilter] = useState("");
let lastPrintedDate: [number, number, Date] | null = null;
@@ -22,13 +24,13 @@ export default function CalendarPage() {
return (
<>
-