import { useEffect, useState } from 'react'; import { httpPatch } from '../../lib/http'; import { setAuthToken } from '../../lib/jwt'; import { Spinner } from '../ReactIcons/Spinner'; import { ErrorIcon2 } from '../ReactIcons/ErrorIcon2'; import { getUrlParams } from '../../lib/browser'; import { CheckIcon } from '../ReactIcons/CheckIcon'; export function TriggerVerifyEmail() { const { code } = getUrlParams() as { code: string }; // const [isLoading, setIsLoading] = useState(true); const [status, setStatus] = useState<'loading' | 'error' | 'success'>( 'loading', ); const [error, setError] = useState(''); const triggerVerify = (code: string) => { setStatus('loading'); httpPatch<{ token: string }>( `${import.meta.env.PUBLIC_API_URL}/v1-verify-new-email/${code}`, {}, ) .then(({ response, error }) => { if (!response?.token) { setError(error?.message || 'Something went wrong. Please try again.'); setStatus('error'); return; } setAuthToken(response.token); setStatus('success'); }) .catch((err) => { setStatus('error'); setError('Something went wrong. Please try again.'); }); }; useEffect(() => { if (!code) { setStatus('error'); setError('Something went wrong. Please try again later.'); return; } triggerVerify(code); }, [code]); const isLoading = status === 'loading'; if (status === 'success') { return (
Your email has been changed successfully. Happy learning!
Please wait while we verify your new Email..
} {error &&{error}
}