'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' interface InviteFormProps { token: string email: string } export default function InviteForm({ token, email }: InviteFormProps) { const [fullName, setFullName] = useState('') const [password, setPassword] = useState('') const [confirmPassword, setConfirmPassword] = useState('') const [error, setError] = useState(null) const [isLoading, setIsLoading] = useState(false) const router = useRouter() const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError(null) if (password !== confirmPassword) { setError('Passwords do not match') return } if (password.length < 8) { setError('Password must be at least 8 characters') return } setIsLoading(true) try { const res = await fetch('/api/invites/accept', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token, fullName, password }), }) const data = await res.json() if (!res.ok) { setError(data.error || 'Something went wrong') return } router.push('/auth/login?invited=1') } catch { setError('Network error. Please try again.') } finally { setIsLoading(false) } } return ( Set up your account You were invited to join RemoteLink
setFullName(e.target.value)} className="bg-secondary/50" />
setPassword(e.target.value)} className="bg-secondary/50" />
setConfirmPassword(e.target.value)} className="bg-secondary/50" />
{error && (

{error}

)}
) }