From 1282e468e366be6cc18c936a398581aa654412e7 Mon Sep 17 00:00:00 2001 From: MartinBraquet Date: Thu, 30 Oct 2025 13:47:12 +0100 Subject: [PATCH] Fix --- web/pages/_app.tsx | 70 ++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/web/pages/_app.tsx b/web/pages/_app.tsx index 8097ab52..bc1f4be4 100644 --- a/web/pages/_app.tsx +++ b/web/pages/_app.tsx @@ -33,40 +33,6 @@ const logoFont = Major_Mono_Display({ // subsets: ['latin'], // }) -async function oauthRedirect(event: any) { - console.log('Received oauthRedirect event'); - console.log('Received oauthRedirect event:', event.detail); - const detail = typeof event.detail === 'string' ? JSON.parse(event.detail) : event.detail - console.log('OAuth data:', detail); - const url = new URL(detail); - - const code = url.searchParams.get('code'); - if (!code) { - console.error('No code found in URL'); - return; - } - - const codeVerifier = localStorage.getItem('pkce_verifier'); - - const tokenResponse = await fetch('https://oauth2.googleapis.com/token', { - method: 'POST', - headers: {'Content-Type': 'application/x-www-form-urlencoded'}, - body: new URLSearchParams({ - client_id: GOOGLE_CLIENT_ID, - code, - code_verifier: codeVerifier!, - redirect_uri: 'com.compassmeet://auth', - grant_type: 'authorization_code', - }), - }); - - const tokens = await tokenResponse.json(); - console.log('Tokens:', tokens); -} - -// Expose globally for native bridge -(window as any).oauthRedirect = oauthRedirect; - function printBuildInfo() { // These are undefined if e.g. dev server if (process.env.NEXT_PUBLIC_VERCEL_ENV) { @@ -98,6 +64,42 @@ function MyApp({Component, pageProps}: AppProps) { } }, []) + useEffect(() => { + async function oauthRedirect(event: any) { + console.log('Received oauthRedirect event'); + console.log('Received oauthRedirect event:', event.detail); + const detail = typeof event.detail === 'string' ? JSON.parse(event.detail) : event.detail + console.log('OAuth data:', detail); + const url = new URL(detail); + + const code = url.searchParams.get('code'); + if (!code) { + console.error('No code found in URL'); + return; + } + + const codeVerifier = localStorage.getItem('pkce_verifier'); + + const tokenResponse = await fetch('https://oauth2.googleapis.com/token', { + method: 'POST', + headers: {'Content-Type': 'application/x-www-form-urlencoded'}, + body: new URLSearchParams({ + client_id: GOOGLE_CLIENT_ID, + code, + code_verifier: codeVerifier!, + redirect_uri: 'com.compassmeet://auth', + grant_type: 'authorization_code', + }), + }); + + const tokens = await tokenResponse.json(); + console.log('Tokens:', tokens); + } + + // Expose globally for native bridge + (window as any).oauthRedirect = oauthRedirect; + }, []); + const title = 'Compass' const description = 'The platform for intentional connections'