const { useState } = React; function NewContact({ onContactCreated }) { const [formData, setFormData] = useState({ full_name: '', preferred_name: '', current_title: '', organisation: '', seniority_band: 'Mid', sector: '', location: '', country: '', tier: 'Prospect', warmth_status: 'warm', how_we_met: '', strategic_context: '', emails: [''], phones: [''], linkedin_url: '', }); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleChange = (field, value) => { setFormData(prev => ({ ...prev, [field]: value })); }; const handleEmailChange = (index, value) => { const newEmails = [...formData.emails]; newEmails[index] = value; setFormData(prev => ({ ...prev, emails: newEmails })); }; const handlePhoneChange = (index, value) => { const newPhones = [...formData.phones]; newPhones[index] = value; setFormData(prev => ({ ...prev, phones: newPhones })); }; const addEmail = () => { setFormData(prev => ({ ...prev, emails: [...prev.emails, ''] })); }; const addPhone = () => { setFormData(prev => ({ ...prev, phones: [...prev.phones, ''] })); }; const handleSubmit = async (e) => { e.preventDefault(); if (!formData.full_name || !formData.organisation) { setError('Full name and organisation are required'); return; } setLoading(true); setError(null); try { const payload = { ...formData, emails: formData.emails.filter(e => e.trim()), phones: formData.phones.filter(p => p.trim()), }; const res = await fetch('/api/contacts', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); if (!res.ok) throw new Error('Failed to create contact'); const data = await res.json(); alert('Contact created successfully'); onContactCreated(); } catch (err) { setError(err.message); } finally { setLoading(false); } }; return (