import { useEffect, useState } from 'react'; import { useSearchParams, useNavigate } from 'react-router-dom'; import { Loader2, CheckCircle, XCircle } from 'lucide-react'; import { api } from '../lib/api'; export default function Activate() { const [searchParams] = useSearchParams(); const navigate = useNavigate(); const token = searchParams.get('token'); const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading'); const [message, setMessage] = useState(''); useEffect(() => { if (!token) { setStatus('error'); setMessage('Invalid or missing activation token.'); return; } const activateAccount = async () => { try { await api.activateUser(token); setStatus('success'); setMessage('Your account has been successfully activated!'); } catch (error: any) { setStatus('error'); setMessage(error.message || 'Failed to activate account.'); } }; activateAccount(); }, [token]); return (
{status === 'loading' && (

Activating Account...

Please wait while we verify your token.

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

Success!

{message}

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

Activation Failed

{message}

)}
); }