'use client'; import { Suspense, useEffect, useState } from 'react'; import { useSearchParams } from 'next/navigation'; import Link from 'next/link'; import { authService, AuthService } from '@/services/auth.service'; function VerifyEmailContent() { const searchParams = useSearchParams(); const token = searchParams.get('token'); const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading'); const [message, setMessage] = useState(''); useEffect(() => { const verifyEmail = async () => { if (!token) { setStatus('error'); setMessage('Invalid verification link. No token provided.'); return; } try { const response = await authService.verifyEmail({ token }); setStatus('success'); setMessage(response.data?.message || 'Your email has been verified successfully!'); } catch (error) { setStatus('error'); const errorMsg = AuthService.getErrorMessage(error); setMessage(errorMsg || 'Email verification failed. The link may have expired or is invalid.'); } }; verifyEmail(); }, [token]); return (
Please wait while we verify your email address...
{message}
Continue to Login{message}
Please wait...