1import{r as t,j as e,B as c,h as x,i as h,k as j,m as p,U as F,I as G,L as K,J as M,aa as v,ab as N,ac as C,ae as d}from"./index-DLd_kDlx.js";import{S as O}from"./SuperAdminLayout-BsUvQU2j.js";import{j as q,r as V,k as $}from"./businessManagement-BTTXtuIj.js";import{T as Q,a as W,b as L,c as i,d as X,e as r}from"./table-BOJIo-OD.js";import{K as R}from"./key-round-B79BulHq.js";import{L as y}from"./loader-circle-D2miE2xB.js";import{R as k}from"./refresh-cw-CoPjtj5-.js";import{S as Y}from"./search-DFH5eAlA.js";import{C as Z}from"./copy-B3ncjnG6.js";import{S as ee}from"./shield-off-nhS97Oaj.js";import"./NotificationIcon-C1wwYnH5.js";import"./popover-BMD5FOmU.js";import"./scroll-area-BXTuUF24.js";import"./index-Deh-4PO1.js";import"./index-BdQq_4o_.js";import"./NotificationItem-Dc2WXW-y.js";import"./formatDistanceToNow-57P64IbE.js";import"./en-US-9SRVm7yB.js";import"./differenceInCalendarMonths-BA0TPVs2.js";import"./endOfDay-DkR3ZXc8.js";import"./endOfMonth-CYn6pTOm.js";import"./message-square-CtxeCfRz.js";import"./trophy-DBX-jNOC.js";import"./triangle-alert-Chqk_WK7.js";import"./dropdown-menu-DSd1c3Vk.js";import"./index-lTaZyIGy.js";import"./chevron-right-CD1gvy-q.js";import"./crown-hzm_bRIt.js";import"./user-check-DxoAQXwU.js";import"./star-BH1OFEcs.js";import"./globe-C057RQ73.js";import"./timer-CZhDpZys.js";import"./briefcase-business-CphIeAJd.js";const B={active:"bg-emerald-100 text-emerald-800 hover:bg-emerald-100",disabled:"bg-slate-100 text-slate-700 hover:bg-slate-100",expired:"bg-red-100 text-red-800 hover:bg-red-100"},Ee=()=>{const[l,w]=t.useState([]),[u,P]=t.useState(""),[o,E]=t.useState("all"),[f,S]=t.useState(!0),[g,m]=t.useState(null),[_,A]=t.useState(null),b=async()=>{try{S(!0),A(null),w(await q())}catch(s){A(s instanceof Error?s.message:"Unable to load access codes")}finally{S(!1)}};t.useEffect(()=>{b()},[]);const T=t.useMemo(()=>{const s=u.trim().toLowerCase();return l.filter(a=>{const n=o==="all"||(o==="active"?a.status==="active":a.status!=="active"),H=!s||[a.business_name,a.pod_name,a.code,a.generated_by_name,a.generated_by_email].filter(Boolean).some(I=>I.toLowerCase().includes(s));return n&&H})},[l,u,o]),D=t.useMemo(()=>l.reduce((s,a)=>s+Number(a.joined_count||0),0),[l]),U=async s=>{await navigator.clipboard.writeText(s),d({title:"Access code copied"})},z=async s=>{try{m(s);const a=await V(s);d({title:"Access code regenerated",description:a.code}),await b()}catch(a){d({title:"Unable to regenerate code",description:a instanceof Error?a.message:"Please try again.",variant:"destructive"})}finally{m(null)}},J=async s=>{try{m(s),await $(s),w(a=>a.map(n=>n.id===s?{...n,status:"disabled"}:n)),d({title:"Access code deactivated"})}catch(a){d({title:"Unable to deactivate code",description:a instanceof Error?a.message:"Please try again.",variant:"destructive"})}finally{m(null)}};return e.jsx(O,{children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(R,{className:"h-6 w-6 text-primary"}),e.jsx("h1",{className:"text-2xl font-bold",children:"Pod Access Code Over
1sight"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Review every business pod code, who generated it, and how many participants joined through it."})]}),e.jsxs(c,{variant:"outline",onClick:b,disabled:f,className:"gap-2",children:[f?e.jsx(y,{className:"h-4 w-4 animate-spin"}):e.jsx(k,{className:"h-4 w-4"}),"Refresh"]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsxs(x,{children:[e.jsx(h,{children:e.jsx(j,{className:"text-sm",children:"Total Codes"})}),e.jsx(p,{children:e.jsx("div",{className:"text-2xl font-bold",children:l.length})})]}),e.jsxs(x,{children:[e.jsx(h,{children:e.jsx(j,{className:"text-sm",children:"Active Codes"})}),e.jsx(p,{children:e.jsx("div",{className:"text-2xl font-bold",children:l.filter(s=>s.status==="active").length})})]}),e.jsxs(x,{children:[e.jsx(h,{children:e.jsxs(j,{className:"flex items-center gap-2 text-sm",children:[e.jsx(F,{className:"h-4 w-4"})," Joined Via Code"]})}),e.jsx(p,{children:e.jsx("div",{className:"text-2xl font-bold",children:D})})]})]}),e.jsxs(x,{children:[e.jsxs(h,{className:"gap-4 md:flex-row md:items-center md:justify-between",children:[e.jsx(j,{children:"Access Codes"}),e.jsxs("div",{className:"flex flex-col gap-3 md:flex-row",children:[e.jsxs("div",{className:"relative w-full md:w-80",children:[e.jsx(Y,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(G,{placeholder:"Search business, pod, code, or creator...",value:u,onChange:s=>P(s.target.value),className:"pl-9"})]}),e.jsx("div",{className:"flex rounded-md border bg-white p-1",children:["all","active","inactive"].map(s=>e.jsx(c,{type:"button",variant:o===s?"secondary":"ghost",size:"sm",onClick:()=>E(s),className:"capitalize",children:s},s))})]})]}),e.jsx(p,{children:f?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(y,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):_?e.jsx("p",{className:"text-sm text-destructive",children:_}):T.length===0?e.jsxs("div",{className:"rounded-lg border py-14 text-center",children:[e.jsx(R,{className:"mx-auto mb-3 h-10 w-10 text-muted-foreground"}),e.jsx("p",{className:"font-medium",children:"No access codes found"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Codes generated for business pods will appear here."})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(Q,{children:[e.jsx(W,{children:e.jsxs(L,{children:[e.jsx(i,{children:"Business"}),e.jsx(i,{children:"Pod"}),e.jsx(i,{children:"Access Code"}),e.jsx(i,{children:"Generated By"}),e.jsx(i,{children:"Date Generated"}),e.jsx(i,{children:"Status"}),e.jsx(i,{className:"text-right",children:"Joined"}),e.jsx(i,{className:"text-right",children:"Actions"})]})}),e.jsx(X,{children:T.map(s=>e.jsxs(L,{children:[e.jsx(r,{className:"font-medium",children:e.jsx(K,{to:`/super-admin/businesses/${s.business_id}`,className:"hover:underline",children:s.business_name})}),e.jsx(r,{children:s.pod_name}),e.jsx(r,{className:"font-mono font-semibold",children:s.code}),e.jsx(r,{children:e.jsxs("div",{children:[e.jsx("p",{children:s.generated_by_name||"Unknown user"}),s.generated_by_email&&e.jsx("p",{className:"text-xs text-muted-foreground",children:s.generated_by_email})]})}),e.jsx(r,{children:new Date(s.created_at).toLocaleDateString()}),e.jsx(r,{children:e.jsx(M,{className:B[s.status]||B.disabled,children:s.status==="active"?"Active":"Inactive"})}),e.jsx(r,{className:"text-right",children:s.joined_count}),e.jsx(r,{children:e.jsxs("div",{className:"flex justify-end gap-1",children:[e.jsxs(v,{children:[e.jsx(N,{asChild:!0,children:e.jsx(c,{size:"icon",variant:"ghost",onClick:()=>U(s.code),"aria-label":"Copy access code",children:e.jsx(Z,{className:"h-4 w-4"})})}),e.jsx(C,{children:"Copy access code"})]}),e.jsxs(v,{children:[e.jsx(N,{asChild:!0,children:e.jsx(c,{size:"icon",variant:"ghost",disabled:g===s.id,onClick:()=>z(s.id),"aria-label":"Regenerate access code",children:g===s.id?e.jsx(y,{className:"h-4 w-4 animate-spin"}):e.jsx(k,{className:"h-4 w-4"})})}),e.jsx(C,{children:"Regenerate and deactivate active codes for this pod"})]}),s.status==="active"&&e.jsxs(v,{children:[e.jsx(N,{asChild:!0,children:e.jsx(c,{size:"icon",variant:"ghost",disabled:g===s.id,onClick:()=>J(s.id),"aria-label":"Deactivate access code",children:e.jsx(ee,{className:"h-4 w-4"})})}),e.jsx(C,{children:"Deactivate this access code"})]})]})})]},s.id))})]})})})]})]})})};export{Ee 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.