'use client'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { Loader2 } from 'lucide-react'; import { toast } from 'sonner'; import { authClient } from '@/lib/auth-client'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; const MIN_PASSWORD_LENGTH = 10; export function RegisterForm() { const router = useRouter(); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [pending, setPending] = useState(false); async function onSubmit(event: React.FormEvent) { event.preventDefault(); if (password.length < MIN_PASSWORD_LENGTH) { toast.error(`Das Passwort braucht mindestens ${MIN_PASSWORD_LENGTH} Zeichen.`); return; } setPending(true); const { error } = await authClient.signUp.email({ name, email, password }); setPending(false); if (error) { toast.error(error.message ?? 'Registrierung fehlgeschlagen.'); return; } toast.success('Konto angelegt. Willkommen bei Bricktrack!'); router.push('/'); router.refresh(); } return (
setName(event.target.value)} placeholder="Vorname" />
setEmail(event.target.value)} placeholder="du@example.de" />
setPassword(event.target.value)} />

Mindestens {MIN_PASSWORD_LENGTH} Zeichen. Einen Passkey kannst du direkt nach der Anmeldung unter „Konto“ hinterlegen.

); }