import { useState, type FormEvent } from 'react' import { useNavigate } from 'react-router-dom' import { partners } from '@/api/client' import { PageHeader } from '@/components/PageHeader' import { ErrorBox } from '@/components/ErrorBox' import { DynamicExtFields } from '@/components/DynamicExtFields' const PARTNER_TYPES = ['CUSTOMER', 'SUPPLIER', 'BOTH'] as const export function CreatePartnerPage() { const navigate = useNavigate() const [code, setCode] = useState('') const [name, setName] = useState('') const [type, setType] = useState('CUSTOMER') const [email, setEmail] = useState('') const [phone, setPhone] = useState('') const [ext, setExt] = useState>({}) const [submitting, setSubmitting] = useState(false) const [error, setError] = useState(null) const onSubmit = async (e: FormEvent) => { e.preventDefault() setError(null) setSubmitting(true) try { const extPayload = Object.keys(ext).length > 0 ? ext : undefined await partners.create({ code, name, type, email: email || null, phone: phone || null, ...(extPayload ? { ext: extPayload } : {}), } as Parameters[0]) navigate('/partners') } catch (err: unknown) { setError(err instanceof Error ? err : new Error(String(err))) } finally { setSubmitting(false) } } return (
navigate('/partners')}>Cancel} />
setCode(e.target.value)} placeholder="CUST-NEWCO" className="mt-1 w-full rounded-md border border-slate-300 px-3 py-2 text-sm" />
setName(e.target.value)} placeholder="New Company Ltd." className="mt-1 w-full rounded-md border border-slate-300 px-3 py-2 text-sm" />
setEmail(e.target.value)} className="mt-1 w-full rounded-md border border-slate-300 px-3 py-2 text-sm" />
setPhone(e.target.value)} className="mt-1 w-full rounded-md border border-slate-300 px-3 py-2 text-sm" />
setExt((prev) => ({ ...prev, [k]: v }))} /> {error && }
) }