'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { loginWithMagicLink, loginWithPassword } from '@/lib/auth/client' 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('/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('/clients') } catch (error: any) { setMessage({ type: 'error', text: 'Demo login mislukt. Probeer handmatig in te loggen.' }) setLoading(false) } } return (
AI-powered EPD voor de GGZ sector
{message.text}
📋 Demo Credentials:
Email: demo@mini-ecd.demo
Password: Demo2024!
Build in Public door{' '} AI Speedrun