'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 (
{status === 'loading' && (

Verifying Your Email

Please wait while we verify your email address...

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

Email Verified!

{message}

Continue to Login
)} {status === 'error' && (

Verification Failed

{message}

Go to Login Sign Up Again
)}
); } function LoadingFallback() { return (

Loading...

Please wait...

); } export default function VerifyEmailPage() { return ( }> ); }