@@ -29,7 +29,7 @@ import addMinutes from "date-fns/addMinutes";
29
29
import getAccessToken from "../utils/getAccessToken" ;
30
30
import CreateEventDialog from "../components/CreateEventDialog" ;
31
31
import renderOverlay from "roamjs-components/util/renderOverlay" ;
32
- import { blockFormatEvent , Event } from "../utils/event" ;
32
+ import { blockFormatEvent , CalenderEvent } from "../utils/event" ;
33
33
import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle" ;
34
34
import getUidsFromButton from "roamjs-components/dom/getUidsFromButton" ;
35
35
import parseNlpDate from "roamjs-components/date/parseNlpDate" ;
@@ -38,6 +38,10 @@ import getSubTree from "roamjs-components/util/getSubTree";
38
38
import createPage from "roamjs-components/writes/createPage" ;
39
39
import extractRef from "roamjs-components/util/extractRef" ;
40
40
41
+ type ExtendedInputTextNode = InputTextNode & {
42
+ event ?: CalenderEvent ;
43
+ } ;
44
+
41
45
const GOOGLE_COMMAND = "Import Google Calendar" ;
42
46
export const DEFAULT_FORMAT = `{summary} ({start:hh:mm a} - {end:hh:mm a}){confLink}` ;
43
47
@@ -185,7 +189,7 @@ const loadGoogleCalendar = (args: OnloadArgs) => {
185
189
. then ( ( Authorization ) =>
186
190
Authorization
187
191
? apiGet < {
188
- items : Event [ ] ;
192
+ items : CalenderEvent [ ] ;
189
193
} > ( {
190
194
authorization : `Bearer ${ Authorization } ` ,
191
195
domain : "https://www.googleapis.com" ,
@@ -198,15 +202,15 @@ const loadGoogleCalendar = (args: OnloadArgs) => {
198
202
error : "" ,
199
203
} ) )
200
204
: Promise . resolve ( {
201
- items : [ ] as Event [ ] ,
205
+ items : [ ] as CalenderEvent [ ] ,
202
206
calendar,
203
207
error : `${ UNAUTHORIZED_MESSAGE } ${
204
208
account ? ` for account ${ account } ` : ""
205
209
} `,
206
210
} )
207
211
)
208
212
. catch ( ( e ) => ( {
209
- items : [ ] as Event [ ] ,
213
+ items : [ ] as CalenderEvent [ ] ,
210
214
calendar,
211
215
error : `Error for calendar ${ calendar } : ${
212
216
e ?. error ?. code === "404"
@@ -249,18 +253,24 @@ const loadGoogleCalendar = (args: OnloadArgs) => {
249
253
if ( events . length === 0 && errors . length === 0 ) {
250
254
return [ { text : EMPTY_MESSAGE } ] ;
251
255
}
252
- return [
253
- ...events
254
- . filter ( ( e ) => ! skipFree || e . transparency !== "transparent" )
255
- . filter (
256
- ( e ) =>
257
- ! ( e . attendees || [ ] ) . some (
258
- ( a ) => a . self && a . responseStatus === "declined"
259
- )
260
- )
261
- . map ( ( e ) => blockFormatEvent ( e , format ) ) ,
262
- ...errors . map ( ( e ) => ( { text : e } ) ) ,
263
- ] ;
256
+ const filteredEvents = events
257
+ . filter ( ( e ) => ! skipFree || e . transparency !== "transparent" )
258
+ . filter (
259
+ ( e ) =>
260
+ ! ( e . attendees || [ ] ) . some (
261
+ ( a ) => a . self && a . responseStatus === "declined"
262
+ )
263
+ ) ;
264
+ const eventInputTextNodes : ExtendedInputTextNode [ ] =
265
+ filteredEvents . map ( ( e ) => {
266
+ const inputTextNode = blockFormatEvent ( e , format ) ;
267
+ return {
268
+ ...inputTextNode ,
269
+ event : e ,
270
+ } ;
271
+ } ) ;
272
+ const errorNodes = errors . map ( ( e ) => ( { text : e } ) ) ;
273
+ return [ ...eventInputTextNodes , ...errorNodes ] ;
264
274
} ) ;
265
275
} ;
266
276
@@ -393,7 +403,7 @@ const loadGoogleCalendar = (args: OnloadArgs) => {
393
403
const text = getTextByBlockUid ( blockUid ) ;
394
404
const eventId = GCAL_EVENT_REGEX . exec ( text ) ?. [ 1 ] || "" ;
395
405
const edit = window . atob ( eventId ) . split ( " " ) [ 0 ] ;
396
- return apiGet < { data : Event } > ( {
406
+ return apiGet < { data : CalenderEvent } > ( {
397
407
domain : `https://www.googleapis.com` ,
398
408
path : `calendar/v3/calendars/${ encodeURIComponent (
399
409
c . calendar
@@ -454,7 +464,7 @@ const loadGoogleCalendar = (args: OnloadArgs) => {
454
464
const text = getTextByBlockUid ( blockUid ) ;
455
465
const eventId = GCAL_EVENT_REGEX . exec ( text ) ?. [ 1 ] || "" ;
456
466
const edit = window . atob ( eventId ) . split ( " " ) [ 0 ] ;
457
- return apiGet < { data : Event } > ( {
467
+ return apiGet < { data : CalenderEvent } > ( {
458
468
domain : `https://www.googleapis.com` ,
459
469
path : `calendar/v3/calendars/${ encodeURIComponent (
460
470
c . calendar
0 commit comments