From c1b66de94d491b16e69e6b2e9c022d14f6babeca Mon Sep 17 00:00:00 2001 From: Brian Pilati Date: Thu, 5 Jun 2025 18:01:02 -0500 Subject: [PATCH 1/2] Removed a call to a function --- .../addon/components/google-file-picker-widget/template.hbs | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/osf-components/addon/components/google-file-picker-widget/template.hbs b/lib/osf-components/addon/components/google-file-picker-widget/template.hbs index d8652569c2..b5ecf732cd 100644 --- a/lib/osf-components/addon/components/google-file-picker-widget/template.hbs +++ b/lib/osf-components/addon/components/google-file-picker-widget/template.hbs @@ -23,5 +23,4 @@ local-class='google-file-picker-container {{if this.isMobile 'mobile'}}' {{/if}} - \ No newline at end of file From 050a36765b3287cd03daaa7d870597cba1ec0c73 Mon Sep 17 00:00:00 2001 From: Brian Pilati Date: Fri, 6 Jun 2025 11:57:09 -0500 Subject: [PATCH 2/2] Updates to disable the menu and select folder button until the token is loaded --- .../file-browser/add-new/component.ts | 6 +++- .../file-browser/add-new/template.hbs | 1 + .../google-file-picker-widget/component.ts | 28 +++---------------- .../google-file-picker-widget/template.hbs | 3 +- 4 files changed, 12 insertions(+), 26 deletions(-) diff --git a/lib/osf-components/addon/components/file-browser/add-new/component.ts b/lib/osf-components/addon/components/file-browser/add-new/component.ts index 28348eb6b6..5aaaef6ce3 100644 --- a/lib/osf-components/addon/components/file-browser/add-new/component.ts +++ b/lib/osf-components/addon/components/file-browser/add-new/component.ts @@ -46,6 +46,10 @@ export default class FileBrowser extends Component { return this.isWBGoogleDrive; } + get isGoogleAuthorized(): boolean { + return this.googlePickerComponent?.isGFPDisabled || false; + } + @action registerChild(child: GoogleFilePickerWidget) { this.googlePickerComponent = child; // Store the child's instance @@ -55,7 +59,7 @@ export default class FileBrowser extends Component { openGoogleFilePicker(dropdown: any) { dropdown.close(); if (this.googlePickerComponent) { - this.googlePickerComponent.openPicker(); + this.googlePickerComponent.createPicker(); } } } diff --git a/lib/osf-components/addon/components/file-browser/add-new/template.hbs b/lib/osf-components/addon/components/file-browser/add-new/template.hbs index 0503aab30e..a998ad9deb 100644 --- a/lib/osf-components/addon/components/file-browser/add-new/template.hbs +++ b/lib/osf-components/addon/components/file-browser/add-new/template.hbs @@ -40,6 +40,7 @@ data-test-add-google-drive @layout='fake-link' {{on 'click' (fn this.openGoogleFilePicker dropdown)}} + disabled={{this.isGoogleAuthorized}} > {{t 'osf-components.file-browser.add-from-drive'}} diff --git a/lib/osf-components/addon/components/google-file-picker-widget/component.ts b/lib/osf-components/addon/components/google-file-picker-widget/component.ts index 65f3cf95e9..8f104d89dc 100644 --- a/lib/osf-components/addon/components/google-file-picker-widget/component.ts +++ b/lib/osf-components/addon/components/google-file-picker-widget/component.ts @@ -66,6 +66,7 @@ export default class GoogleFilePickerWidget extends Component { @tracked isFolderPicker = false; @tracked openGoogleFilePicker = false; @tracked visible = false; + @tracked isGFPDisabled = true; pickerInited = false; selectFolder: any = undefined; accessToken!: string; @@ -120,6 +121,7 @@ export default class GoogleFilePickerWidget extends Component { authorizedStorageAccount.serializeOauthToken = true; const token = await authorizedStorageAccount.save(); this.accessToken = token.oauthToken; + this.isGFPDisabled = this.accessToken ? false : true; } } @@ -145,14 +147,6 @@ export default class GoogleFilePickerWidget extends Component { } } - @action - openPicker() { - // Logic for opening Google File Picker here - if (this.handleAuthClick) { - this.handleAuthClick(); - } - } - @action registerComponent() { if (this.args.onRegisterChild) { @@ -179,29 +173,15 @@ export default class GoogleFilePickerWidget extends Component { */ async initializePicker() { this.pickerInited = true; - this.maybeEnableButtons(); - } - - /** - * Enables user interaction after all libraries are loaded. - */ - maybeEnableButtons() { - if (this.pickerInited && this.isFolderPicker) { + if (this.isFolderPicker) { this.visible = true; } } - /** - * Sign in the user upon button click. - */ - @action - handleAuthClick() { - this.createPicker(); - } - /** * Create and render a Picker object for searching images. */ + @action createPicker() { const googlePickerView = new window.google.picker.DocsView(window.google.picker.ViewId.DOCS); googlePickerView.setSelectFolderEnabled(true); diff --git a/lib/osf-components/addon/components/google-file-picker-widget/template.hbs b/lib/osf-components/addon/components/google-file-picker-widget/template.hbs index b5ecf732cd..73113fbb47 100644 --- a/lib/osf-components/addon/components/google-file-picker-widget/template.hbs +++ b/lib/osf-components/addon/components/google-file-picker-widget/template.hbs @@ -16,7 +16,8 @@ local-class='google-file-picker-container {{if this.isMobile 'mobile'}}'