'use client'; import { useState } from 'react'; import { api } from '@/lib/api'; import { useRouter } from 'next/navigation'; interface PaymentFormProps { registrationId: string; } export function PaymentForm({ registrationId }: PaymentFormProps) { const [amount, setAmount] = useState(''); const [method, setMethod] = useState('Cash'); const [transactionId, setTransactionId] = useState(''); const [notes, setNotes] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(null); const router = useRouter(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setIsSubmitting(true); try { await api.recordPayment( registrationId, parseFloat(amount), method, transactionId || undefined, notes || undefined ); router.push('/registrations'); } catch (err) { setError(err instanceof Error ? err.message : 'Payment failed'); } finally { setIsSubmitting(false); } }; return (
{error && (
{error}
)}

Record Payment

setAmount(e.target.value)} required className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" />
setTransactionId(e.target.value)} className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" />