import { useEffect, useState, useCallback } from 'react' import { leadsApi, exportApi } from '../api' import { useProject } from '../contexts/ProjectContext' const STATUS_OPTIONS = ['new', 'contacted', 'qualified', 'converted', 'archived'] const SOURCE_OPTIONS = ['csv', 'excel', 'linkedin', 'web_scrape', 'manual'] function Badge({ value }) { const cls = `badge badge-${value?.replace(/\s/g, '_').toLowerCase() || 'new'}` return {value || '—'} } function LeadModal({ lead, projectId, onClose, onSave }) { const [form, setForm] = useState({ ...lead }) const [saving, setSaving] = useState(false) const set = (k, v) => setForm(f => ({ ...f, [k]: v })) const handleSave = async () => { setSaving(true) try { const data = { ...form } if (projectId && !data.project_id) data.project_id = projectId await (lead.id ? leadsApi.update(lead.id, data) : leadsApi.create(data)) onSave() } catch (e) { alert(e.message) } finally { setSaving(false) } } const fields = [ ['company_name', 'Company Name'], ['contact_name', 'Contact Name'], ['email', 'Email'], ['phone', 'Phone'], ['website', 'Website'], ['linkedin_url', 'LinkedIn URL'], ['industry', 'Industry'], ['company_size', 'Company Size'], ['location', 'Location'], ] return (

{lead.id ? 'Edit Lead' : 'Add Lead'}

{fields.map(([k, label]) => (
set(k, e.target.value)} />
))}