// Clients.jsx 'use strict'; const { useState, useEffect } = React; function ClientModal({ open, onClose, onSave, editClient }) { const empty = { name:'', cpf:'', phone:'', email:'', address:'', notes:'' }; const [form, setForm] = useState(empty); const [errors, setErrors] = useState({}); useEffect(() => { if (open) { setForm(editClient ? {...editClient} : {...empty}); setErrors({}); } }, [open, editClient]); const set = (k,v) => setForm(f=>({...f,[k]:v})); const validate = () => { const e = {}; if (!form.name.trim()) e.name = 'Nome obrigatório'; if (!form.phone.trim()) e.phone = 'Telefone obrigatório'; setErrors(e); return Object.keys(e).length === 0; }; const handleSave = () => { if (!validate()) return; onSave(form); onClose(); }; return (
set('name',e.target.value)} placeholder="João da Silva" error={!!errors.name}/> set('cpf',e.target.value)} placeholder="000.000.000-00"/> set('phone',e.target.value)} placeholder="(11) 99999-9999" error={!!errors.phone}/> set('email',e.target.value)} placeholder="cliente@email.com"/> set('address',e.target.value)} placeholder="Rua, número, bairro, cidade/UF, CEP"/>