diff --git a/src/lib/utils/google-drive-picker.ts b/src/lib/utils/google-drive-picker.ts index c96771cb8..e40b59ff3 100644 --- a/src/lib/utils/google-drive-picker.ts +++ b/src/lib/utils/google-drive-picker.ts @@ -59,16 +59,24 @@ export const loadGoogleAuthApi = () => { export const getAuthToken = async () => { if (!oauthToken) { - const tokenClient = google.accounts.oauth2.initTokenClient({ - client_id: CLIENT_ID, - scope: SCOPE.join(' '), - callback: (response: any) => { - if (response.access_token) { - oauthToken = response.access_token; + return new Promise((resolve, reject) => { + const tokenClient = google.accounts.oauth2.initTokenClient({ + client_id: CLIENT_ID, + scope: SCOPE.join(' '), + callback: (response: any) => { + if (response.access_token) { + oauthToken = response.access_token; + resolve(oauthToken); + } else { + reject(new Error('Failed to get access token')); + } + }, + error_callback: (error: any) => { + reject(new Error(error.message || 'OAuth error occurred')); } - }, + }); + tokenClient.requestAccessToken(); }); - await tokenClient.requestAccessToken(); } return oauthToken; };