'use client'; import { useEffect, useState } from 'react'; import { useRouter, useParams } from 'next/navigation'; import { verifyEmailChange } from '@/app/API/profile/emailVerification'; import { Spinner } from 'react-bootstrap'; export default function EmailVerificationPage() { const router = useRouter(); const params = useParams(); const [status, setStatus] = useState<'verifying' | 'success' | 'error'>('verifying'); const [message, setMessage] = useState(''); useEffect(() => { const verifyEmail = async () => { try { const response = await verifyEmailChange(params.token as string); if (response.status === 'success') { setStatus('success'); setMessage(response.message); setTimeout(() => router.push('/profile'), 3000); } else { throw new Error(response.message || 'Verification failed'); } } catch (error) { setStatus('error'); setMessage(error instanceof Error ? error.message : 'Verification failed'); } }; verifyEmail(); }, [params.token, router]); return (

Email Verification

{status === 'verifying' && (

Verifying your email change...

)} {status === 'success' && (
{message || 'Email successfully updated!'}

Redirecting to profile...

)} {status === 'error' && (
{message || 'Failed to verify email change.'}
)}
); }