From 23bd9bf9b9f58f45eca353b1cf46a1d0bd19b588 Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Sun, 1 Sep 2024 10:48:58 -0600 Subject: [PATCH] expose addGoogleCalendarEventCommand --- src/services/calendar.ts | 63 +++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/src/services/calendar.ts b/src/services/calendar.ts index a2ed890..ee6eb9f 100644 --- a/src/services/calendar.ts +++ b/src/services/calendar.ts @@ -352,38 +352,40 @@ const loadGoogleCalendar = (args: OnloadArgs) => { }) ); + const addGoogleCalendarEventCommand = () => { + const blockUid = + window.roamAlphaAPI.ui.getFocusedBlock()?.["block-uid"] || ""; + const children = blockUid ? getBasicTreeByParentUid(blockUid) : []; + const props = { + summary: blockUid ? getTextByBlockUid(blockUid) : "No Summary", + ...Object.fromEntries( + children.map((t) => { + const [key, value] = t.text.split("::").map((s) => s.trim()); + const attr = key.toLowerCase(); + return [ + attr, + ["start", "end"].includes(attr) ? parseNlpDate(value) : value, + ]; + }) + ), + }; + renderOverlay({ + Overlay: CreateEventDialog, + props: { + blockUid, + description: "", + location: "", + start: new Date(), + end: addMinutes(new Date(), 30), + ...props, + getCalendarIds, + }, + }); + }; + window.roamAlphaAPI.ui.commandPalette.addCommand({ label: "Add Google Calendar Event", - callback: () => { - const blockUid = - window.roamAlphaAPI.ui.getFocusedBlock()?.["block-uid"] || ""; - const children = blockUid ? getBasicTreeByParentUid(blockUid) : []; - const props = { - summary: blockUid ? getTextByBlockUid(blockUid) : "No Summary", - ...Object.fromEntries( - children.map((t) => { - const [key, value] = t.text.split("::").map((s) => s.trim()); - const attr = key.toLowerCase(); - return [ - attr, - ["start", "end"].includes(attr) ? parseNlpDate(value) : value, - ]; - }) - ), - }; - renderOverlay({ - Overlay: CreateEventDialog, - props: { - blockUid, - description: "", - location: "", - start: new Date(), - end: addMinutes(new Date(), 30), - ...props, - getCalendarIds, - }, - }); - }, + callback: addGoogleCalendarEventCommand, }); unloads.add(() => window.roamAlphaAPI.ui.commandPalette.removeCommand({ @@ -503,6 +505,7 @@ const loadGoogleCalendar = (args: OnloadArgs) => { window.roamjs.extension.google = { fetchGoogleCalendar, + addGoogleCalendarEventCommand, }; unloads.add( registerSmartBlocksCommand({