From 0d85d8c196673477c4c61c40096cd4a1cb2c1cf7 Mon Sep 17 00:00:00 2001 From: Ukweh Chima Everest Date: Mon, 23 Mar 2026 13:56:14 +0100 Subject: [PATCH 1/4] Create useGoogleIdToken.ts --- .../google/src/hooks/useGoogleIdToken.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts diff --git a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts new file mode 100644 index 0000000..a7b086d --- /dev/null +++ b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts @@ -0,0 +1,28 @@ +import { useGoogleOAuth } from '@react-oauth/google'; +import { useCallback } from 'react'; + +export const useGoogleIdToken = ({onSuccess}:any):unknown => { + const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth(); + + const login = useCallback(() => { + if (!scriptLoadedSuccessfully) { + console.error("Google script not loaded yet"); + return; + } + + /* global google */ + (window?.google as any)?.accounts?.id?.initialize({ + client_id: clientId, + callback: (response:any) => { + if (response.credential) { + onSuccess(response.credential); + } + }, + }); + + // This opens the native Google selection prompt + (window?.google as any)?.accounts?.id?.prompt(); + }, [clientId, scriptLoadedSuccessfully, onSuccess]); + + return { login }; +}; From 5a93f19db69397d148de91c681a3a3b55f641069 Mon Sep 17 00:00:00 2001 From: Ukweh Chima Everest Date: Mon, 23 Mar 2026 13:58:41 +0100 Subject: [PATCH 2/4] Update useGoogleIdToken.ts --- packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts index a7b086d..9aa9017 100644 --- a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts +++ b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts @@ -1,4 +1,4 @@ -import { useGoogleOAuth } from '@react-oauth/google'; +import { useGoogleOAuth } from './GoogleOAuthProvider'; import { useCallback } from 'react'; export const useGoogleIdToken = ({onSuccess}:any):unknown => { From b1c6cffd82fbc2bcd4a5f68195832fc78c1effeb Mon Sep 17 00:00:00 2001 From: Ukweh Chima Everest Date: Mon, 23 Mar 2026 14:11:51 +0100 Subject: [PATCH 3/4] Update useGoogleIdToken.ts --- packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts index 9aa9017..2c9837d 100644 --- a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts +++ b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts @@ -1,10 +1,10 @@ import { useGoogleOAuth } from './GoogleOAuthProvider'; import { useCallback } from 'react'; -export const useGoogleIdToken = ({onSuccess}:any):unknown => { +export const useGoogleIdToken = ({onSuccess}:any) => { const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth(); - const login = useCallback(() => { + const login:()=>void = useCallback(() => { if (!scriptLoadedSuccessfully) { console.error("Google script not loaded yet"); return; From e176569f881b7fc03e11bc2b048bad0f6075be7f Mon Sep 17 00:00:00 2001 From: Ukweh Chima Everest Date: Mon, 23 Mar 2026 14:14:46 +0100 Subject: [PATCH 4/4] Update useGoogleIdToken.ts --- packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts index 2c9837d..460b162 100644 --- a/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts +++ b/packages/@react-oauth/google/src/hooks/useGoogleIdToken.ts @@ -4,7 +4,7 @@ import { useCallback } from 'react'; export const useGoogleIdToken = ({onSuccess}:any) => { const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth(); - const login:()=>void = useCallback(() => { + const login = useCallback(() => { if (!scriptLoadedSuccessfully) { console.error("Google script not loaded yet"); return; @@ -24,5 +24,5 @@ export const useGoogleIdToken = ({onSuccess}:any) => { (window?.google as any)?.accounts?.id?.prompt(); }, [clientId, scriptLoadedSuccessfully, onSuccess]); - return { login }; + return login; };