diff --git a/space/components/account/oauth/github-button.tsx b/space/components/account/oauth/github-button.tsx index 41e6b7f92..ba65f38c4 100644 --- a/space/components/account/oauth/github-button.tsx +++ b/space/components/account/oauth/github-button.tsx @@ -1,4 +1,5 @@ import { FC } from "react"; +import { useSearchParams } from "next/navigation"; import Image from "next/image"; import { useTheme } from "next-themes"; // helpers @@ -12,12 +13,14 @@ export type GithubOAuthButtonProps = { }; export const GithubOAuthButton: FC = (props) => { + const searchParams = useSearchParams(); + const nextPath = searchParams.get("next_path") || undefined; const { text } = props; // hooks const { resolvedTheme } = useTheme(); const handleSignIn = () => { - window.location.assign(`${API_BASE_URL}/auth/spaces/github/`); + window.location.assign(`${API_BASE_URL}/auth/spaces/github/${nextPath ? `?next_path=${nextPath}` : ``}`); }; return ( diff --git a/space/components/account/oauth/google-button.tsx b/space/components/account/oauth/google-button.tsx index d31c6f59f..179b1c35a 100644 --- a/space/components/account/oauth/google-button.tsx +++ b/space/components/account/oauth/google-button.tsx @@ -1,4 +1,5 @@ import { FC } from "react"; +import { useSearchParams } from "next/navigation"; import Image from "next/image"; import { useTheme } from "next-themes"; // helpers @@ -11,12 +12,14 @@ export type GoogleOAuthButtonProps = { }; export const GoogleOAuthButton: FC = (props) => { + const searchParams = useSearchParams(); + const nextPath = searchParams.get("next_path") || undefined; const { text } = props; // hooks const { resolvedTheme } = useTheme(); const handleSignIn = () => { - window.location.assign(`${API_BASE_URL}/auth/spaces/google/`); + window.location.assign(`${API_BASE_URL}/auth/spaces/google/${nextPath ? `?next_path=${nextPath}` : ``}`); }; return ( diff --git a/web/components/account/oauth/github-button.tsx b/web/components/account/oauth/github-button.tsx index 317cebe31..be9b59f24 100644 --- a/web/components/account/oauth/github-button.tsx +++ b/web/components/account/oauth/github-button.tsx @@ -1,4 +1,5 @@ import { FC } from "react"; +import { useRouter } from "next/router"; import Image from "next/image"; import { useTheme } from "next-themes"; // helpers @@ -12,12 +13,14 @@ export type GithubOAuthButtonProps = { }; export const GithubOAuthButton: FC = (props) => { + const { query } = useRouter(); + const { next_path } = query; const { text } = props; // hooks const { resolvedTheme } = useTheme(); const handleSignIn = () => { - window.location.assign(`${API_BASE_URL}/auth/github/`); + window.location.assign(`${API_BASE_URL}/auth/github/${next_path ? `?next_path=${next_path}` : ``}`); }; return ( diff --git a/web/components/account/oauth/google-button.tsx b/web/components/account/oauth/google-button.tsx index 2b3df4931..d196ff97a 100644 --- a/web/components/account/oauth/google-button.tsx +++ b/web/components/account/oauth/google-button.tsx @@ -1,4 +1,5 @@ import { FC } from "react"; +import { useRouter } from "next/router"; import Image from "next/image"; import { useTheme } from "next-themes"; // helpers @@ -11,12 +12,14 @@ export type GoogleOAuthButtonProps = { }; export const GoogleOAuthButton: FC = (props) => { + const { query } = useRouter(); + const { next_path } = query; const { text } = props; // hooks const { resolvedTheme } = useTheme(); const handleSignIn = () => { - window.location.assign(`${API_BASE_URL}/auth/google/`); + window.location.assign(`${API_BASE_URL}/auth/google/${next_path ? `?next_path=${next_path}` : ``}`); }; return (