'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: Clock, 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 (Van uren documentatie naar seconden. Ontdek hoe AI je dagelijkse workflow transformeert.
Toegang tot EPD prototype
{message.text}
📋 Demo Credentials:
Email: demo@mini-ecd.demo
Password: Demo2024!
Build in Public door{' '} AI Speedrun