'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { loginWithMagicLink, loginWithPassword } from '@/lib/auth/client' import { Brain, Zap, Target, FileText, Clock, TrendingDown } from 'lucide-react' import { BentoGrid, BentoCard } from '@/components/ui/bento-grid' // Bento grid features with different sizes for visual interest const bentoFeatures = [ { name: 'AI Intake Samenvatting', description: 'Van 30 minuten handmatig werk naar 5 seconden automatisch. AI leest, begrijpt en structureert intake gesprekken.', icon: Brain, className: 'col-span-3 lg:col-span-2', background: (
), href: '#', cta: 'Meer info' }, { name: '90%+ Tijdsbesparing', description: 'Gemiddeld bespaar je 2+ uur per dag op documentatie', icon: TrendingDown, className: 'col-span-3 lg:col-span-1', background: (
), href: '#', cta: 'Zie metrics' }, { name: 'DSM Classificatie', description: 'Automatische categorisatie in 3 seconden vs 15 minuten handmatig', icon: Zap, className: 'col-span-3 lg:col-span-1', background: (
), href: '#', cta: 'Ontdekken' }, { name: 'SMART Behandelplannen', description: 'Gestructureerde doelen en interventies in 10 seconden. AI genereert evidence-based plannen.', icon: Target, className: 'col-span-3 lg:col-span-2', background: (
), href: '#', cta: 'Bekijk voorbeeld' } ] export default function LoginPage() { const router = useRouter() const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [loading, setLoading] = useState(false) const [message, setMessage] = useState<{ type: 'success' | 'error' text: string } | null>(null) const [showDemoLogin, setShowDemoLogin] = useState(false) // Magic link login const handleMagicLinkLogin = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setMessage(null) try { const result = await loginWithMagicLink(email) setMessage({ type: 'success', text: result.message }) setEmail('') } catch (error: any) { setMessage({ type: 'error', text: error.message || 'Er ging iets mis. Probeer opnieuw.' }) } finally { setLoading(false) } } // Password login (demo accounts) const handlePasswordLogin = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setMessage(null) try { await loginWithPassword(email, password) setMessage({ type: 'success', text: 'Ingelogd! Redirect naar EPD...' }) // Redirect to EPD setTimeout(() => { router.push('/epd/clients') }, 1000) } catch (error: any) { setMessage({ type: 'error', text: error.message || 'Ongeldige credentials.' }) } finally { setLoading(false) } } // Quick demo login const handleQuickDemoLogin = async () => { setEmail('demo@mini-ecd.demo') setPassword('Demo2024!') setShowDemoLogin(true) // Auto-submit setLoading(true) try { await loginWithPassword('demo@mini-ecd.demo', 'Demo2024!') router.push('/epd/clients') } catch (error: any) { setMessage({ type: 'error', text: 'Demo login mislukt. Probeer handmatig in te loggen.' }) setLoading(false) } } return (
{/* Left Side - Bento Grid Showcase (60%) */}
{/* Header */}
← Terug naar home

AI-Gestuurde EPD Workflows

Van uren documentatie naar seconden. Ontdek hoe AI je dagelijkse workflow transformeert.

{/* Bento Grid */} {bentoFeatures.map((feature, index) => ( ))} {/* Stats Footer */}
90%+
Tijdsbesparing
< 5 sec
Gemiddelde respons
4 weken
Build tijd
{/* Right Side - Login Form (40%) */}
{/* Header */}

Login

Toegang tot EPD prototype

{/* Message Display */} {message && (

{message.text}

)} {/* Magic Link Login */} {!showDemoLogin && (

📧 Login met Magic Link

setEmail(e.target.value)} placeholder="jouw@email.nl" required className="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-teal-500 focus:border-transparent" />

Nieuw? Account wordt automatisch aangemaakt!

{/* Divider */}
of
{/* Demo Account Toggle */} {/* Quick Demo Button */}
)} {/* Demo Password Login */} {showDemoLogin && (

🎯 Demo Account Login

{/* Demo Credentials Info */}

📋 Demo Credentials:

Email: demo@mini-ecd.demo

Password: Demo2024!

setEmail(e.target.value)} placeholder="demo@mini-ecd.demo" required className="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-teal-500 focus:border-transparent" />
setPassword(e.target.value)} placeholder="••••••••" required className="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-teal-500 focus:border-transparent" />
)} {/* Footer */}

Build in Public door{' '} AI Speedrun

) }