'use client'; import { useRouter, useSearchParams } from 'next/navigation'; import type { Provider } from '@supabase/supabase-js'; import { isBrowser } from '@kit/shared/utils'; import { If } from '@kit/ui/if'; import { Separator } from '@kit/ui/separator'; import { Trans } from '@kit/ui/trans'; import { MagicLinkAuthContainer } from './magic-link-auth-container'; import { OauthProviders } from './oauth-providers'; import { PasswordSignInContainer } from './password-sign-in-container'; export function SignInMethodsContainer(props: { inviteToken?: string; paths: { callback: string; home: string; joinTeam: string; }; providers: { password: boolean; magicLink: boolean; oAuth: Provider[]; }; }) { const router = useRouter(); const nextPath = useSearchParams().get('next') ?? props.paths.home; const redirectUrl = isBrowser() ? new URL(props.paths.callback, window?.location.origin).toString() : ''; const onSignIn = () => { if (props.inviteToken) { const searchParams = new URLSearchParams({ invite_token: props.inviteToken, }); const joinTeamPath = props.paths.joinTeam + '?' + searchParams.toString(); router.replace(joinTeamPath); } else { router.replace(nextPath); } }; return ( <>
); }