import { useEffect, useState } from 'react' import { useSearchParams, Link } from 'react-router-dom' import { CheckCircle2, XCircle, Loader2 } from 'lucide-react' import { authApi } from '@/api/auth' import { PageMeta } from '@/components/common/PageMeta' import { cn } from '@/lib/utils' export function VerifyEmailPage() { const [searchParams] = useSearchParams() const token = searchParams.get('token') const [status, setStatus] = useState<'loading' | 'success' | 'error'>(token ? 'loading' : 'error') const [errorMessage, setErrorMessage] = useState(token ? '' : 'No verification token provided') useEffect(() => { if (!token) return authApi.verifyEmail(token) .then(() => setStatus('success')) .catch((err) => { setStatus('error') const detail = (err as { response?: { data?: { detail?: string } } }).response?.data?.detail setErrorMessage(detail ?? 'Verification failed') }) }, [token]) return ( <>
{status === 'loading' && ( <>

Verifying your email...

)} {status === 'success' && ( <>

Email Verified

Your email has been successfully verified.

Go to Dashboard )} {status === 'error' && ( <>

Verification Failed

{errorMessage}

Go to Dashboard )}
) } export default VerifyEmailPage