From 0a59532df465d842a7446f3e873c790baccf1ddd Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Tue, 3 Sep 2024 14:03:58 +0200 Subject: [PATCH] fix: events and types --- README.md | 8 ++++---- src/drive-picker/drive-picker-element.ts | 16 ++++++++++++---- src/drive-picker/index.ts | 1 + src/utils.ts | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 65f8f04..3946b79 100644 --- a/README.md +++ b/README.md @@ -100,10 +100,10 @@ Note: The Google Picker API does not support file organization, moving, or copyi ### Methods -| Method | Type | -| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `addEventListener` | `(type: "cancel" \| "picked", listener: (ev: CustomEvent): void, options?: boolean \| AddEventListenerOptions \| undefined) => void` | -| `removeEventListener` | `(type: "cancel" \| "picked", listener: (ev: CustomEvent): void, options?: boolean \| EventListenerOptions \| undefined) => void` | +| Method | Type | +| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `addEventListener` | `(type: "cancel" \| "picked" \| "loaded", listener: (ev: DrivePickerEvent): void, options?: boolean \| AddEventListenerOptions \| undefined) => void` | +| `removeEventListener` | `(type: "cancel" \| "picked" \| "loaded", listener: (ev: DrivePickerEvent): void, options?: boolean \| EventListenerOptions \| undefined) => void` | ### Events diff --git a/src/drive-picker/drive-picker-element.ts b/src/drive-picker/drive-picker-element.ts index 7846939..4d262d4 100644 --- a/src/drive-picker/drive-picker-element.ts +++ b/src/drive-picker/drive-picker-element.ts @@ -44,15 +44,19 @@ export interface DrivePickerElementProps { width?: number; } +export type DrivePickerEvent = CustomEvent; + +// TODO fix typings for Action to include "loaded" + export interface DrivePickerElementEventListeners { addEventListener( - type: "cancel" | "picked", - listener: (ev: CustomEvent) => void, + type: "cancel" | "picked" | "loaded", + listener: (ev: DrivePickerEvent) => void, options?: boolean | AddEventListenerOptions, ): void; removeEventListener( - type: "cancel" | "picked", - listener: (ev: CustomEvent) => void, + type: "cancel" | "picked" | "loaded", + listener: (ev: DrivePickerEvent) => void, options?: boolean | EventListenerOptions, ): void; } @@ -275,6 +279,10 @@ export class DrivePickerElement private callbackToDispatchEvent(data: google.picker.ResponseObject) { this.visible = Boolean(this.picker?.isVisible()); + // TODO file bug for this + if (data.action === google.picker.Action.CANCEL) { + this.visible = false; + } this.dispatch(data.action, data); } diff --git a/src/drive-picker/index.ts b/src/drive-picker/index.ts index 5fe0a22..486b34c 100644 --- a/src/drive-picker/index.ts +++ b/src/drive-picker/index.ts @@ -16,6 +16,7 @@ export { DrivePickerElement, + type DrivePickerEvent, type DrivePickerElementProps, } from "./drive-picker-element"; diff --git a/src/utils.ts b/src/utils.ts index 2a35ec5..bd546c4 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -36,7 +36,7 @@ export async function retrieveAccessToken( } return new Promise((resolve) => { - const client = google.accounts.oauth2.initTokenClient({ + const client = window.google.accounts.oauth2.initTokenClient({ client_id: clientId, scope,