1import{u as y,F as o,aq as b,r as N,G as x,j as e,H as r,K as l}from"./index-D7JLZXVm.js";import{u as _}from"./useQuery-sQb4kCfR.js";import{d as f,u as C,l as w}from"./agents.functions-DBeprmyk.js";import{D as k,a as A,e as D,b as P,f as S}from"./dialog-D3jcjR97.js";import{L as q}from"./label-BKfcr1Qy.js";import{T as u}from"./textarea-ChbAmzVQ.js";import{S as F}from"./switch-D698MtRu.js";import{P as T}from"./plus-BIl2zSEQ.js";import{P as E,T as K}from"./trash-2-z2p_eu15.js";import"./useBaseQuery-DZB0_naP.js";import"./index-CZCAsRYr.js";function U(){const{t:n}=y(),d=o(w),c=o(C),h=o(f),g=b(),{data:p,isLoading:j}=_({queryKey:["admin","agents"],queryFn:()=>d()}),[s,t]=N.useState(null),m=x({mutationFn:a=>c({data:a}),onSuccess:()=>{g.invalidateQueries({queryKey:["admin","agents"]}),t(null)}}),v=x({mutationFn:a=>h({data:{id:a}}),onSuccess:()=>g.invalidateQueries({queryKey:["admin","agents"]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h1",{className:"font-display text-2xl font-bold",children:n("admin.agents_page.title")}),e.jsxs(r,{onClick:()=>t({commission_pct:25,active:!0}),children:[e.jsx(T,{className:"mr-2 h-4 w-4"})," ",n("admin.agents_page.newAgent")]})]}),j?e.jsx("p",{className:"text-muted-foreground",children:n("admin.loading")}):e.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{className:"bg-muted border-b border-border text-left text-xs uppercase shadow-[0_1px_0_0_hsl(var(--border))]",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-3 py-2",children:n("admin.agents_page.table.name")}),e.jsx("th",{className:"px-3 py-2",children:n("admin.agents_page.table.company")}),e.jsx("th",{className:"px-3 py-2",children:n("admin.agents_page.table.country")}),e.jsx("th",{className:"px-3 py-2",children:n("admin.agents_page.table.email")}),e.jsx("th",{className:"px-3 py-2 text-right",children:n("admin.agents_page.table.commission")}),e.jsx("th",{className:"px-3 py-2",children:n("admin.agents_page.table.active")}),e.jsx("th",{className:"px-3 py-2"})]})}),e.jsxs("tbody",{className:"divide-y divide-border",children:[(p?.agents??[]).map(a=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-3 py-2 font-medium",children:a.name}),e.jsx("td",{className:"px-3 py-2",children:a.company??"â"}),e.jsx("td",{className:"px-3 py-2",children:a.country??"â"}),e.jsx("td",{className:"px-3 py-2",children:a.email??"â"}),e.jsxs("td",{className:"px-3 py-2 text-right",children:[a.commission_pct,"%"]}),e.jsx("td",{className:"px-3 py-2",children:a.active?e.jsx("span",{className:"rounded bg-primary/10 px-2 py-0.5 text-xs text-primary",children:n("admin.agents_page.active")}):e.jsx("span",{className:"rounded bg-muted px-2 py-0.5 text-xs text-muted-foreground",children:n("admin.agents_page.inactive")})}),e.jsxs("td",{className:"px-3 py-2 text-right",children:[e.jsx(r,{size:"sm",variant:"ghost",onClick:()=>t(a),children:e.jsx(E,{className:"h-4 w-4"})}),e.jsx(r,{size:"sm",variant:"ghost",onClick:()=>{confirm(n("admin.agents_page.confirmDelete",{name:a.name}))&&v.mutate(a.id)},children:e.jsx(K,{className:"h-4 w-4"})})]})]},a.id)),(p?.agents??[]).length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:8,className:"px-3 py-6 text-center text-muted-foreground",children:n("admin.agents_page.table.empty")})})]})]})}),e.jsx(k,{open:!!s,onOpenChange:a=>!a&&t(null),children:e.jsxs(A,{className:"max-w-2xl",children:[e.jsx(D,{children:e.jsx(P,{children:s?.id?n("admin.agents_page.dialog.titleEdit"):n("admin.agents_page.dialog.titleNew")})}),s&&e.jsxs("form",{onSubmit:a=>{a.preventDefault(),m.mutate({id:s.id,name:s.name??"",company:s.company??null,email:s.email??null,phone:s.phone??null,address:s.address??null,country:s.country??null,vat_number:s.vat_number??null,commission_pct:Number(s.commission_pct??25),notes:s.notes??null,active:s.active??!0})},className:"grid grid-cols-2 gap-4",children:[e.jsx(i,{label:n("admin.agents_page.dialog.name"),children:e.jsx(l,{required:!0,value:s.name??"",onChange:a=>t({...s,name:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.company"),children:e.jsx(l,{value:s.company??"",onChange:a=>t({...s,company:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.email"),children:e.jsx(l,{type:"email",value:s.email??"",onChange:a=>t({...s,email:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.phone"),children:e.jsx(l,{value:s.phone??"",onChange:a=>t({...s,phone:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.country"),children:e.jsx(l,{value:s.country??"",onChange:a=>t({...s,country:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.vat"),children:e.jsx(l,{value:s.vat_number??"",onChange:a=>t({...s,vat_number:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.address"),className:"col-span-2",children:e.jsx(u,{rows:2,value:s.address??"",onChange:a=>t({...s,address:a.target.value})})}),e.jsx(i,{label:n("admin.agents_page.dialog.commissionPct"),children:e.jsx(l,{type:"number",min:0,max:100,step:"0.5",value:s.commission_pct??25,onChange:a=>t({...s,commission_pct:Number(a.target.value)})})}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(F,{checked:s.active??!0,onCheckedChange:a=>t({...s,active:a})}),e.jsx("span",{className:"text-sm",children:n("admin.agents_page.active")})]}),e.jsx(i,{label:n("admin.agents_page.dialog.notes"),className:"col-span-2",children:e.jsx(u,{rows:3,value:s.notes??"",onChange:a=>t({...s,notes:a.target.value})})}),e.jsxs(S,{className:"col-span-2",children:[e.jsx(r,{type:"button",variant:"ghost",onClick:()=>t(null),children:n("admin.cancel")}),e.jsx(r,{type:"submit",disabled:m.isPending,children:m.isPending?n("admin.saving"):n("admin.save")})]})]})]})})]})}function i({label:n,children:d,className:c}){return e.jsxs("div",{className:c,children:[e.jsx(q,{className:"mb-1.5 block text-xs font-medium uppercase tracking-wide text-muted-foreground",children:n}),d]})}export{U 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.