diff --git a/apps/web/src/app/[locale]/(auth)/login/components/login-with-oidc.tsx b/apps/web/src/app/[locale]/(auth)/login/components/login-with-oidc.tsx index aa3e38f48..67f9bd237 100644 --- a/apps/web/src/app/[locale]/(auth)/login/components/login-with-oidc.tsx +++ b/apps/web/src/app/[locale]/(auth)/login/components/login-with-oidc.tsx @@ -1,24 +1,28 @@ +"use client"; import { Button } from "@rallly/ui/button"; import { signIn } from "next-auth/react"; -import { Trans } from "react-i18next/TransWithoutContext"; -import { getTranslation } from "@/i18n/server"; - -export async function LoginWithOIDC({ name }: { name: string }) { - const { t } = await getTranslation(); +import { Trans } from "@/components/trans"; +export async function LoginWithOIDC({ + name, + callbackUrl, +}: { + name: string; + callbackUrl?: string; +}) { return ( diff --git a/apps/web/src/app/[locale]/(auth)/login/components/sso-provider.tsx b/apps/web/src/app/[locale]/(auth)/login/components/sso-provider.tsx index 02e5780cc..e7934691d 100644 --- a/apps/web/src/app/[locale]/(auth)/login/components/sso-provider.tsx +++ b/apps/web/src/app/[locale]/(auth)/login/components/sso-provider.tsx @@ -40,9 +40,11 @@ function SSOImage({ provider }: { provider: string }) { export function SSOProvider({ providerId, name, + callbackUrl, }: { providerId: string; name: string; + callbackUrl?: string; }) { const { t } = useTranslation(); return ( @@ -55,7 +57,9 @@ export function SSOProvider({ })} key={providerId} onClick={() => { - signIn(providerId); + signIn(providerId, { + callbackUrl, + }); }} > diff --git a/apps/web/src/app/[locale]/(auth)/login/page.tsx b/apps/web/src/app/[locale]/(auth)/login/page.tsx index eb7a3a121..94a518ae8 100644 --- a/apps/web/src/app/[locale]/(auth)/login/page.tsx +++ b/apps/web/src/app/[locale]/(auth)/login/page.tsx @@ -18,7 +18,13 @@ import { LoginWithOIDC } from "./components/login-with-oidc"; import { OrDivider } from "./components/or-divider"; import { SSOProvider } from "./components/sso-provider"; -export default async function LoginPage() { +export default async function LoginPage({ + searchParams, +}: { + searchParams?: { + callbackUrl?: string; + }; +}) { const { t } = await getTranslation(); const oAuthProviders = getOAuthProviders(); @@ -49,7 +55,12 @@ export default async function LoginPage() { {hasAlternateLoginMethods ? : null} - {oidcProvider ? : null} + {oidcProvider ? ( + + ) : null} {socialProviders ? (
{socialProviders.map((provider) => ( @@ -57,6 +68,7 @@ export default async function LoginPage() { key={provider.id} providerId={provider.id} name={provider.name} + callbackUrl={searchParams?.callbackUrl} /> ))}