import { Navigate, useSearchParams, useNavigate } from 'react-router-dom' import { Helmet } from 'react-helmet-async' import { trpc } from '~/utils/trpc' import { logout } from '~/utils/auth' import IVButton from '~/components/IVButton' import { MeProvider, useMe } from '~/components/MeContext' import IVAPIError from '~/components/IVAPIError' import NotificationCenter, { notify } from '~/components/NotificationCenter' import AuthLoadingState from '~/components/AuthLoadingState' import AuthPageHeader from '~/components/AuthPageHeader' function Container(props) { return (
Confirm email | Interval {props.children}
) } export default function ConfirmEmailPage() { const [searchParams] = useSearchParams() const seal = searchParams.get('seal') const confirmQuery = trpc.useQuery(['auth.confirm-email', { token: seal }], { refetchOnWindowFocus: false, retry: false, }) if (confirmQuery.error) { if (confirmQuery.error.message === 'UNAUTHORIZED') { return ( ) } return ( ) } if (!confirmQuery.data) { return } if (seal && confirmQuery.isSuccess) { // imporatant! perform a full reload to refresh the user object in MeContext. window.location.assign(`/dashboard/develop/actions?nc-email-confirmed`) return } if (confirmQuery.data.isConfirmRequired === false) { return } return ( ) } function SentEmailNotice() { const { me } = useMe() const navigate = useNavigate() const refreshToken = trpc.useMutation('auth.confirm-email.refresh') const onResend = () => { refreshToken.mutate(null, { onSuccess() { notify.success('We sent a new confirmation to your email.') }, }) } return (

We sent an email to {me?.email}. Please click the link in the email to verify your email address and complete your signup.

) }