1import{u as k,a as S,r,j as e,L as u,B as D,h as f,J as h}from"./index-DFhUiiAX.js";import{p as b}from"./partnerContactsService-ZtV1hPHY.js";import{C as E}from"./confirm-delete-dialog-Bu1UH_Vu.js";import{P as L}from"./plus-An2xpF0B.js";import{S as R}from"./search-4XzxSTCG.js";import"./alert-dialog-DTv8TsdO.js";import"./index-F2K0RhTL.js";import"./index-BDVvL8Sa.js";function M(){const{t}=k(),{user:g}=S(),s=g?.id??"",[a,i]=r.useState(null),[d,m]=r.useState(null),[c,j]=r.useState(""),[o,l]=r.useState(null),[N,p]=r.useState(!1);async function x(){if(s){m(null);try{const n=await b.listForPartner(s,{q:c});i(n)}catch(n){m(n instanceof f?n.message:t("content.partnerContacts.errors.load")),i([])}}}r.useEffect(()=>{x()},[s,c]);const C=a?.length??0,v=r.useMemo(()=>a?.length===0,[a]);async function w(){if(!(!o||!s)){p(!0);try{await b.removeFromPartnerView(s,o.id),h.success(t("content.partnerContacts.list.removedToast")),l(null),await x()}catch(n){h.error(n instanceof f?n.message:t("content.partnerContacts.errors.remove"))}finally{p(!1)}}}return e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsxs("header",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"eyebrow",children:t("content.partnerContacts.list.eyebrow")}),e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"font-display text-4xl md:text-5xl",children:t("content.partnerContacts.list.heading")}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground max-w-2xl",children:t("content.partnerContacts.list.subtitle")})]}),e.jsxs(u,{to:"/premiumpartners/contactos/nuevo",className:"inline-flex items-center gap-2 bg-ink px-4 py-2.5 text-[12px] font-semibold uppercase tracking-[0.22em] text-bone hover:bg-ink/85",children:[e.jsx(L,{size:14,strokeWidth:2})," ",t("content.partnerContacts.list.new")]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-y border-border py-3",children:[e.jsxs("div",{className:"text-xs uppercase tracking-widest text-muted-foreground",children:[C," · ",t("content.partnerContacts.list.totalSuffix")]}),e.jsxs("label",{className:"relative w-full md:w-80",children:[e.jsx(R,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{value:c,onChange:n=>j(n.target.value),placeholder:t("content.partnerContacts.list.searchPlaceholder"),className:"h-9 w-full border border-border bg-background pl-9 pr-3 text-sm focus:border-ink focus:outline-none"})]})]}),a===null?e.jsx("div",{className:"p-10 text-center text-sm text-muted-foreground",children:e.jsx(D,{size:"md",showLabel:!0,label:t("content.partnerContacts.states.loading")})}):d?e.jsx("div",{className:"border border-bafre-red/30 bg-bafre-red-soft p-4 text-sm text-bafre-red",children:d}):v?e.jsx("div",{className:"border border-dashed border-border p-10 text-center text-sm text-muted-foreground",children:t("content.partnerContacts.states.empty")}):e.jsx("div",{className:"overflow-x-auto border border-border bg-background",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border text-left text-[10px] uppercase tracking-widest text-muted-foreground",children:[e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.name")}),e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.passport")}),e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.nationality")}),e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.promotions")}),e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.pending")}),e.jsx("th",{className:"p-4 font-medium",children:t("content.partnerContacts.th.createdAt")}),e.jsx("th",{className:"p-4 font-medium"})]})}),e.jsx("tbody",{children:a.map(n=>e.jsxs("tr",{className:"border-b border-border last:border-b-0 hover:bg-secondary",children:[e.jsx("td",{className:"p-4 font-medium",children:n.name}),e.jsx("td",{className:"p-4 font-mono text-xs",children:n.passportNumber}),e.jsx("td",{className:"p-4 text-xs",children:n.nationality}),e.jsx("td",{className:"p-4 text-xs",children:n.promotions.length===0?e.jsx("span",{className:"text-muted-foreground",children:t("content.partnerContacts.shared.none")}):n.promotions.map(y=>y.name).join(" · ")}),e.jsx("td",{className:"p-4",children:n.pendingDocumentsCount>0?e.jsxs("span",{className:"inline-flex items-center bg-bafre-red-soft px-2 py-0.5 text-[10px] uppercase tracking-widest text-bafre-red",children:[n.pendingDocumentsCount," · ",t("content.partnerContacts.list.pendingSuffix")]}):e.jsx("span",{className:"text-xs text-muted-foreground",children:t("content.partnerContacts.shared.ok")})}),e.jsx("td",{className:"p-4 text-xs text-muted-foreground tabular",children:new Date(n.createdAt).toLocaleDateString("es-ES")}),e.jsxs("td",{className:"p-4 text-right whitespace-nowrap",children:[e.jsx(u,{to:"/premiumpartners/contactos/$contactId",params:{contactId:n.id},className:"text-xs uppercase tracking-widest text-bafre-red hover:underline",children:t("content.partnerContacts.actions.open")}),e.jsx("button",{onClick:()=>l(n),className:"ml-4 text-xs uppercase tracking-widest text-muted-foreground hover:text-bafre-red",children:t("content.partnerContacts.actions.removeMine")})]})]},n.id))})]})}),e.jsx(E,{open:!!o,onOpenChange:n=>{n||l(null)},title:t("content.partnerContacts.confirmRemove.title"),description:`${t("content.partnerContacts.confirmRemove.description")} ${o?.name??""}`,secondaryText:t("content.partnerContacts.confirmRemove.hint"),confirmLabel:t("content.partnerContacts.confirmRemove.confirm"),loadingLabel:t("content.partnerContacts.confirmRemove.loading"),loading:N,onConfirm:w})]})}export{M as component};
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.