From c0cc4224bb1ec2a362d02adcfd1bae32a97ea2bc Mon Sep 17 00:00:00 2001 From: EYHN Date: Wed, 19 Feb 2025 14:44:02 +0800 Subject: [PATCH] feat(core): close popup after oauth login (#10273) --- packages/frontend/apps/mobile/src/app.tsx | 2 +- packages/frontend/apps/web/src/app.tsx | 2 +- .../frontend/core/src/desktop/pages/auth/oauth-callback.tsx | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/frontend/apps/mobile/src/app.tsx b/packages/frontend/apps/mobile/src/app.tsx index 9625cc503e..3b7e5d86ca 100644 --- a/packages/frontend/apps/mobile/src/app.tsx +++ b/packages/frontend/apps/mobile/src/app.tsx @@ -74,7 +74,7 @@ framework.impl(PopupWindowProvider, { url = `${redirectProxy}?${search.toString()}`; } - window.open(url, '_blank', 'noreferrer noopener'); + window.open(url, '_blank', 'popup noreferrer noopener'); }, }); framework.impl(HapticProvider, { diff --git a/packages/frontend/apps/web/src/app.tsx b/packages/frontend/apps/web/src/app.tsx index 8e82d8d147..e967f827bf 100644 --- a/packages/frontend/apps/web/src/app.tsx +++ b/packages/frontend/apps/web/src/app.tsx @@ -69,7 +69,7 @@ framework.impl(PopupWindowProvider, { url = `${redirectProxy}?${search.toString()}`; } - window.open(url, '_blank', 'noreferrer noopener'); + window.open(url, '_blank', 'popup noreferrer noopener'); }, }); const frameworkProvider = framework.provider(); diff --git a/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx b/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx index 453f4a6e32..ff158563d2 100644 --- a/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx +++ b/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx @@ -4,7 +4,6 @@ import { type LoaderFunction, redirect, useLoaderData, - // eslint-disable-next-line @typescript-eslint/no-restricted-imports useNavigate, } from 'react-router-dom'; @@ -76,9 +75,8 @@ export const Component = () => { triggeredRef.current = true; auth .signInOauth(data.code, data.state, data.provider) - .then(({ redirectUri }) => { - // TODO(@forehalo): need a good way to go back to previous tab and close current one - nav(redirectUri ?? '/'); + .then(() => { + window.close(); }) .catch(e => { nav(`/sign-in?error=${encodeURIComponent(e.message)}`);