1import{j4 as S,iT as E,iQ as q,hA as l,gY as e,cU as w,a_ as A,cT as k,N as P,dl as g,f0 as T,cv as B,dr as L,iL as F,eZ as I,cH as R,aL as D,dG as b,bC as M,bf as N,dx as O,ag as z,cc as W,ac as $}from"./index-DJZVjtmQ.js";import{destroyContact as G,editContact as U,createContact as V,getCustomer as H}from"./utils-DmlhPcEv.js";const _={name:"",middle_name:"",last_name:"",email:"",phone:"",position:"",active:"1",start:"",end:""};function Q({contacts:a,contactId:s,setContactId:m,setShow:x}){const{t}=S(),d=E(),u=q(),[o,h]=l.useState(_),[p,i]=l.useState(!1),f=()=>{m(null),x(!1),h(_)};l.useEffect(()=>{p&&u.state==="idle"&&(f(),i(!1))},[u.state,p]),l.useEffect(()=>{if(s===null)return;const r=a.find(n=>n.contact_id===s);r&&h(r)},[s,a]);const c=r=>n=>h(j=>({...j,[r]:n.target.value}));return e.jsx(w,{title:o.contact_id?t("Editar contacto"):t("Nuevo contacto"),subtitle:o.contact_id?[o.name,o.middle_name].filter(Boolean).join(" "):t("Persona, teléfono y correo"),formId:"new-contact",saving:u.state==="submitting",saveLabel:t("Guardar contacto"),savedMessage:t(s?"Contacto editado":"Contacto agregado"),onClose:f,children:e.jsxs(A,{id:"new-contact",action:`/sales-mobile/customer/edit/${d.id}/contacts`,method:"post",onSubmit:()=>i(!0),children:[e.jsx("input",{type:"hidden",hidden:!0,name:"client_transactional_id",value:d.id}),e.jsx("input",{type:"hidden",hidden:!0,name:"supplier_id",value:d.id}),e.jsx("input",{type:"hidden",name:"contact_id",value:o.contact_id||"",readOnly:!0}),e.jsx("input",{type:"hidden",hidden:!0,name:"type",value:"contact"}),e.jsx(k,{children:e.jsxs(P,{children:[e.jsx(g,{label:t("Nombre"),required:!0,name:"name",value:o.name,onChange:c("name"),placeholder:t("Marisol")}),e.jsxs("div",{style:T(B),children:[e.jsx("div",{children:e.jsx(g,{label:t("Apellido Paterno"),required:!0,name:"middle_name",value:o.middle_name,onChange:c("middle_name"),placeholder:t("Ordóñez")})}),e.jsx("div",{children:e.jsx(g,{label:t("Apellido Materno"),required:!0,name:"last_name",value:o.last_name,onChange:c("last_name"),placeholder:t("Vega")})})]}),e.jsx(g,{label:t("Email"),required:!0,name:"email",type:"email",value:o.email,onChange:c("email"),placeholder:t("[email protected]")}),e.jsx(g,{label:t("Teléfono"),name:"phone",value:o.phone,onChange:c("phone"),placeholder:t("33 1234 5678")}),e.jsx(g,{label:t("Puesto"),name:"position",value:o.position,onChange:c("position"),placeholder:t("Compras"),hint:t("Sirve para saber a quién buscar en este cliente.")}),e.jsx(L,{label:t("Estado del contacto"),note:t("Los contactos inactivos no aparecen al elegir a quién enviar."),value:o.active==="1",onChange:r=>h(n=>({...n,active:r?"1":"0"}))})]})})]})})}const y=a=>(a||[]).map(s=>({...s,contact_id:s.id}));function J(){const{t:a}=S(),s=F(),m=E(),x=s.customer.data,[t,d]=l.useState(!1),[u,o]=l.useState(()=>y(x==null?void 0:x.contacts)),[h,p]=l.useState(null),[i,f]=l.useState(null),c=I();l.useEffect(()=>{const n=`private-get-transactional-client.${m.id}`;return c.subscribe(n).bind("fill-transactional-client",async()=>{var v;const C=await H(m.id);o(y((v=C==null?void 0:C.data)==null?void 0:v.contacts))}),()=>c.unsubscribe(n)},[m.id]);const r=`/sales-mobile/customer/edit/${m.id}/contacts`;return e.jsxs(R,{children:[t?e.jsx(Q,{contacts:u,contactId:h,setContactId:p,setShow:d}):e.jsx(w,{title:a("Contactos"),subtitle:a("Personas, teléfonos y correos"),footer:e.jsxs(z,{onClick:()=>{p(null),d(!0)},style:";flex:1;justify-content:center;height:48px",children:[e.jsx(W,{size:16,strokeWidth:2.4}),a("Agregar contacto")]}),children:u.length===0?e.jsx(D,{icon:b,title:a("Sin contactos todavÃa"),text:a("Agrega a quién buscar en este cliente: compras, pagos o almacén.")}):e.jsx(k,{children:u.map((n,j)=>e.jsx(M,{first:j===0,icon:b,tone:n.active==="1"?"ok":"raised",title:n.name||a("Sin nombre"),sub:[n.position,n.phone,n.email].filter(Boolean).join(" · ")||a("Sin datos de contacto"),onClick:()=>{p(n.contact_id),d(!0)},right:e.jsx(N,{title:a("Eliminar"),onClick:()=>f(n),style:";color:var(--danger)",children:e.jsx(O,{size:15,strokeWidth:1.9})})},n.contact_id))})}),e.jsx($,{open:!!i,onClose:()=>f(null),title:a("Eliminar contacto"),body:a("Estas tratando de destruir el contacto {{contactname}}
1, ¿Estás Seguro?",{contactname:i==null?void 0:i.name}),action:r,hidden:{contact_id:i==null?void 0:i.contact_id,type:"destroy_contact"},doneMessage:a("Contacto eliminado")})]})}async function K({request:a}){const s=await a.formData();switch(s.get("type")){case"contact":s.get("contact_id")?await U(s):await V(s);break;case"destroy_contact":await G(s);break}return"0"}export{K as Action,J as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.