'use client'; import { useRouter } from 'next/navigation'; import { useState, useTransition } from 'react'; import { Loader2 } from 'lucide-react'; import { toast } from 'sonner'; import { registerWithInvite } from '@/app/(auth)/einladung/[token]/actions'; import { Button } from '@/components/ui/button'; import { Field } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; const MIN_PASSWORD_LENGTH = 10; export function InviteForm({ token, email }: { token: string; email: string | null }) { const router = useRouter(); const [pending, startTransition] = useTransition(); const [password, setPassword] = useState(''); function onSubmit(event: React.FormEvent) { event.preventDefault(); const input = Object.fromEntries(new FormData(event.currentTarget).entries()); startTransition(async () => { const result = await registerWithInvite({ ...input, token }); if (!result.ok) { toast.error(result.error); return; } toast.success('Konto angelegt. Willkommen bei Bricktrack!'); router.push('/'); router.refresh(); }); } return (
setPassword(event.target.value)} />
); }