'use client' import { Suspense, useEffect, useState } from 'react' import { useSearchParams, useRouter } from 'next/navigation' import { motion } from 'framer-motion' function VerifyContent() { const searchParams = useSearchParams() const router = useRouter() const token = searchParams.get('token') const [status, setStatus] = useState<'verifying' | 'success' | 'error'>('verifying') const [errorMsg, setErrorMsg] = useState('') useEffect(() => { if (!token) { setStatus('error') setErrorMsg('No access token provided.') return } async function verify() { try { const res = await fetch('/api/auth/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token }), }) if (res.ok) { setStatus('success') setTimeout(() => router.push('/'), 1000) } else { const data = await res.json() setStatus('error') setErrorMsg(data.error || 'Verification failed.') } } catch { setStatus('error') setErrorMsg('Network error. Please try again.') } } verify() }, [token, router]) return (
{status === 'verifying' && ( <>

Verifying your access link...

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

Access verified!

Redirecting to pitch deck...

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

Access Denied

{errorMsg}

Back to login )}
) } export default function VerifyPage() { return (

Loading...

} >
) }