import { useEffect, useState } from 'react'; import { useSearchParams, useNavigate } from 'react-router-dom'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { supabase } from '@/lib/supabase'; import { CheckCircle, XCircle, Loader2, ArrowLeft } from 'lucide-react'; export default function EmailVerification() { const [searchParams] = useSearchParams(); const navigate = useNavigate(); const [verifying, setVerifying] = useState(true); const [verified, setVerified] = useState(false); const [error, setError] = useState(''); useEffect(() => { const token = searchParams.get('token'); if (token) { verifyEmail(token); } else { setError('No verification token provided'); setVerifying(false); } }, [searchParams]); const verifyEmail = async (token: string) => { try { const { data, error } = await supabase.functions.invoke('email-verification', { body: { action: 'verify', token } }); if (error) throw error; setVerified(true); } catch (err: any) { setError(err.message || 'Failed to verify email'); } finally { setVerifying(false); } }; return (
Please wait while we verify your email...
Your email has been verified. You can now access all features.
{error}