'use client'; import { useCallback, useRef, useState } from 'react'; import { Check } from 'lucide-react'; import { useSignUpWithEmailAndPassword } from '@kit/supabase/hooks/use-sign-up-with-email-password'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { If } from '@kit/ui/if'; import { Trans } from '@kit/ui/trans'; import { AuthErrorAlert } from './auth-error-alert'; import { PasswordSignUpForm } from './password-sign-up-form'; interface EmailPasswordSignUpContainerProps { onSignUp?: (userId?: string) => unknown; emailRedirectTo: string; captchaToken?: string; } export function EmailPasswordSignUpContainer({ onSignUp, emailRedirectTo, captchaToken, }: EmailPasswordSignUpContainerProps) { const signUpMutation = useSignUpWithEmailAndPassword(); const redirecting = useRef(false); const loading = signUpMutation.isPending || redirecting.current; const [showVerifyEmailAlert, setShowVerifyEmailAlert] = useState(false); const onSignupRequested = useCallback( async (credentials: { email: string; password: string }) => { if (loading) { return; } try { const data = await signUpMutation.mutateAsync({ ...credentials, emailRedirectTo, captchaToken, }); setShowVerifyEmailAlert(true); if (onSignUp) { onSignUp(data.user?.id); } } catch (error) { console.error(error); } }, [emailRedirectTo, loading, onSignUp, signUpMutation], ); return ( <> ); } function SuccessAlert() { return ( ); }