Skip to content
This repository was archived by the owner on Apr 14, 2026. It is now read-only.

Commit e8a9108

Browse files
authored
Added functionality so the GD menu item and select folder are not enabled until oauth token is loaded (#2571)
* Removed a call to a function * Updates to disable the menu and select folder button until the token is loaded
1 parent 1637352 commit e8a9108

4 files changed

Lines changed: 12 additions & 26 deletions

File tree

lib/osf-components/addon/components/file-browser/add-new/component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ export default class FileBrowser extends Component<Args> {
4646
return this.isWBGoogleDrive;
4747
}
4848

49+
get isGoogleAuthorized(): boolean {
50+
return this.googlePickerComponent?.isGFPDisabled || false;
51+
}
52+
4953
@action
5054
registerChild(child: GoogleFilePickerWidget) {
5155
this.googlePickerComponent = child; // Store the child's instance
@@ -55,7 +59,7 @@ export default class FileBrowser extends Component<Args> {
5559
openGoogleFilePicker(dropdown: any) {
5660
dropdown.close();
5761
if (this.googlePickerComponent) {
58-
this.googlePickerComponent.openPicker();
62+
this.googlePickerComponent.createPicker();
5963
}
6064
}
6165
}

lib/osf-components/addon/components/file-browser/add-new/template.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
data-test-add-google-drive
4141
@layout='fake-link'
4242
{{on 'click' (fn this.openGoogleFilePicker dropdown)}}
43+
disabled={{this.isGoogleAuthorized}}
4344
>
4445
{{t 'osf-components.file-browser.add-from-drive'}}
4546
</Button>

lib/osf-components/addon/components/google-file-picker-widget/component.ts

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export default class GoogleFilePickerWidget extends Component<Args> {
6666
@tracked isFolderPicker = false;
6767
@tracked openGoogleFilePicker = false;
6868
@tracked visible = false;
69+
@tracked isGFPDisabled = true;
6970
pickerInited = false;
7071
selectFolder: any = undefined;
7172
accessToken!: string;
@@ -120,6 +121,7 @@ export default class GoogleFilePickerWidget extends Component<Args> {
120121
authorizedStorageAccount.serializeOauthToken = true;
121122
const token = await authorizedStorageAccount.save();
122123
this.accessToken = token.oauthToken;
124+
this.isGFPDisabled = this.accessToken ? false : true;
123125
}
124126
}
125127

@@ -145,14 +147,6 @@ export default class GoogleFilePickerWidget extends Component<Args> {
145147
}
146148
}
147149

148-
@action
149-
openPicker() {
150-
// Logic for opening Google File Picker here
151-
if (this.handleAuthClick) {
152-
this.handleAuthClick();
153-
}
154-
}
155-
156150
@action
157151
registerComponent() {
158152
if (this.args.onRegisterChild) {
@@ -179,29 +173,15 @@ export default class GoogleFilePickerWidget extends Component<Args> {
179173
*/
180174
async initializePicker() {
181175
this.pickerInited = true;
182-
this.maybeEnableButtons();
183-
}
184-
185-
/**
186-
* Enables user interaction after all libraries are loaded.
187-
*/
188-
maybeEnableButtons() {
189-
if (this.pickerInited && this.isFolderPicker) {
176+
if (this.isFolderPicker) {
190177
this.visible = true;
191178
}
192179
}
193180

194-
/**
195-
* Sign in the user upon button click.
196-
*/
197-
@action
198-
handleAuthClick() {
199-
this.createPicker();
200-
}
201-
202181
/**
203182
* Create and render a Picker object for searching images.
204183
*/
184+
@action
205185
createPicker() {
206186
const googlePickerView = new window.google.picker.DocsView(window.google.picker.ViewId.DOCS);
207187
googlePickerView.setSelectFolderEnabled(true);

lib/osf-components/addon/components/google-file-picker-widget/template.hbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ local-class='google-file-picker-container {{if this.isMobile 'mobile'}}'
1616
</div>
1717
<div local-class='action-container'>
1818
<button class='btn btn-primary btn-medium' local-class='authorize-button {{if this.visible 'visible'}}' type='button' id='authorize_button'
19-
{{on 'click' (action this.handleAuthClick)}}
19+
disabled={{this.isGFPDisabled}}
20+
{{on 'click' (action this.createPicker)}}
2021
>
2122
{{t 'addons.configure.google-file-picker.select-root-folder'}}
2223
</button>

0 commit comments

Comments
 (0)