// Extracted Data Form Component const { useState, useEffect } = React; const ExtractedDataForm = ({ projectId, project, onUpdate }) => { const toast = useToast(); const [saving, setSaving] = useState(false); const [expandedSections, setExpandedSections] = useState({ personal: true, residence: true, document: true, }); // Local state for form data const [personalData, setPersonalData] = useState({}); const [residenceData, setResidenceData] = useState({}); const [idDocument, setIdDocument] = useState({}); // Initialize form data from project useEffect(() => { setPersonalData(project?.personal_data || {}); setResidenceData(project?.residence_data || {}); setIdDocument(project?.id_document || {}); }, [project?.personal_data, project?.residence_data, project?.id_document]); const toggleSection = (section) => { setExpandedSections(prev => ({ ...prev, [section]: !prev[section] })); }; const handleSave = async () => { setSaving(true); try { await window.ApiUtils.updateExtractedData(projectId, { personal_data: personalData, residence_data: residenceData, id_document: idDocument, }); toast('Dati salvati con successo', 'success'); onUpdate?.(); } catch (error) { toast(error.message || 'Errore durante il salvataggio', 'error'); } finally { setSaving(false); } }; const SectionHeader = ({ title, icon, section, isExpanded }) => ( ); return (
{/* Personal Data Section */}
{expandedSections.personal && (
setPersonalData(prev => ({ ...prev, last_name: e.target.value }))} /> setPersonalData(prev => ({ ...prev, first_name: e.target.value }))} />
setPersonalData(prev => ({ ...prev, date_of_birth: e.target.value }))} /> setPersonalData(prev => ({ ...prev, fiscal_code: e.target.value.toUpperCase() }))} />
setPersonalData(prev => ({ ...prev, birth_city: e.target.value }))} /> setPersonalData(prev => ({ ...prev, birth_nation: e.target.value }))} />
)}
{/* Residence Data Section */}
{expandedSections.residence && (
setResidenceData(prev => ({ ...prev, address: e.target.value }))} />
setResidenceData(prev => ({ ...prev, number: e.target.value }))} /> setResidenceData(prev => ({ ...prev, cap: e.target.value }))} />
setResidenceData(prev => ({ ...prev, city: e.target.value }))} /> setResidenceData(prev => ({ ...prev, nation: e.target.value }))} />
)}
{/* ID Document Section */}
{expandedSections.document && (
setIdDocument(prev => ({ ...prev, number: e.target.value.toUpperCase() }))} />
setIdDocument(prev => ({ ...prev, start_date: e.target.value }))} /> setIdDocument(prev => ({ ...prev, end_date: e.target.value }))} />
setIdDocument(prev => ({ ...prev, release_city: e.target.value }))} /> setIdDocument(prev => ({ ...prev, release_entity: e.target.value }))} />
)}
{/* Save Button */}
); }; window.ExtractedDataForm = ExtractedDataForm;