import { useParams } from 'common' import { useEffect } from 'react' import { Admonition, ShimmeringLoader } from 'ui-patterns' import { InterstitialLayout, SupabaseLogo } from '@/components/layouts/InterstitialLayout' import { useVerifyEmailMutation } from '@/data/support/support-email-verification-mutation' export const SupportEmailVerification = () => { const { token } = useParams() const { mutate: verifyEmail, isPending, isSuccess, isError, error, } = useVerifyEmailMutation({ onError: () => {} }) useEffect(() => { if (token) { verifyEmail({ token }) } }, [token, verifyEmail]) const isExpiredOrUsed = isError && error?.code === 410 const withLayout = (title: string, children: React.ReactNode) => ( } title={title}>
{children}
) if (!token) { return withLayout( 'Email Verification', ) } if (isPending) { return withLayout( 'Verifying your email…',
) } if (isSuccess) { return withLayout( 'Account linked', ) } if (isExpiredOrUsed) { return withLayout( 'Link no longer valid', ) } return withLayout( 'Verification failed', ) }