'use client' import { Suspense, useEffect, useState, useCallback } 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<'ready' | 'verifying' | 'success' | 'error'>('ready') const [errorMsg, setErrorMsg] = useState('') useEffect(() => { if (!token) { setStatus('error') setErrorMsg('No access token provided.') return } // If the investor already has a valid session, skip the button entirely fetch('/api/auth/me').then(res => { if (res.ok) router.push('/') }) }, [token, router]) const handleAccess = useCallback(async () => { if (!token || status === 'verifying') return setStatus('verifying') 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.') } }, [token, status, router]) return (
{status === 'ready' && ( <>

Your pitch deck is ready

Click below to access it.

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

Verifying your access...

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

Access verified!

Redirecting to pitch deck...

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

Access Denied

{errorMsg}

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

Loading...

} >

Datenschutzhinweis (Art. 13 DSGVO): Beim Zugriff werden technische Zugriffsdaten (IP-Adresse, Zeitpunkt, Browser) sowie – soweit eingeladen – personenbezogene Kontaktdaten (E-Mail, Name, Unternehmen) verarbeitet. Zweck: Zugangsverwaltung und Missbrauchsprävention. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse). Speicherdauer: max. 30 Tage nach letztem Zugriff; nicht aktivierte Zugänge nach 90 Tagen. Danach automatische Anonymisierung. Ihre Rechte gem. Art. 15–21 DSGVO (Auskunft, Berichtigung, Löschung, Einschränkung, Datenübertragbarkeit, Widerspruch): Anfragen an pitch@breakpilot.ai. Beschwerderecht bei der Aufsichtsbehörde: LfDI Baden-Württemberg (www.baden-wuerttemberg.datenschutz.de).

Verantwortlich: Benjamin Bönisch & Sharang Parnerkar · Kontakt: info@breakpilot.com

) }