1import{u as y,t as o,j as s,B as x,C as t,a as c,c as d,b as r,d as l,f as u}from"./index-CMjSxCKv.js";import{D as S}from"./DashboardLayout-DRtOb4Ng.js";import{R as T,A as g,a as b,b as A}from"./alert-IlXuAYfF.js";import{B as f}from"./badge-E7WmV-qe.js";import{S as P}from"./shield-check-DD5U_9mZ.js";import{C as R}from"./circle-check-big-DUFZDawz.js";import{S as B}from"./shield-alert-DSZ1J3Gh.js";import{C as N}from"./clock-3-D7KlecUT.js";import{C as v}from"./circle-check-CqcncfMZ.js";import"./dialog-DBoB1lEi.js";function w(n){return n==="healthy"||n==="resolved"?"default":n==="critical"||n==="unavailable"?"destructive":"secondary"}function E(){const{user:n}=y(),{data:e,isLoading:k,refetch:D}=o.admin.dashboard.useQuery(void 0,{enabled:n?.role==="admin"}),m=o.admin.refreshHealth.useMutation({onSuccess:()=>D()}),i=o.admin.runSandboxChecks.useMutation(),j=o.admin.updateAlert.useMutation({onSuccess:()=>D()}),h=e?.providerHealth??[],p=e?.alerts??[],C=h.filter(a=>a.status==="healthy").length;return s.jsx(S,{"data-loc":"client/src/pages/AdminDashboard.tsx:28",children:s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:29",className:"space-y-8",children:[s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:30",className:"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",children:[s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:31",children:[s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:32",className:"text-sm font-medium uppercase tracking-[0.18em] text-primary",children:"Operations control"}),s.jsx("h1",{"data-loc":"client/src/pages/AdminDashboard.tsx:33",className:"mt-2 text-3xl font-bold tracking-tight",children:"Admin Dashboard"}),s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:34",className:"mt-2 text-muted-foreground",children:"Live platform health, sandbox provider readiness, and operational alerts."})]}),s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:36",className:"flex flex-wrap gap-2",children:[s.jsxs(x,{"data-loc":"client/src/pages/AdminDashboard.tsx:37",variant:"outline",onClick:()=>i.mutate(),disabled:i.isPending,children:[s.jsx(P,{"data-loc":"client/src/pages/AdminDashboard.tsx:38",className:"mr-2 h-4 w-4"}),i.isPending?"Running checksâ¦":"Run sandbox checks"]}),s.jsxs(x,{"data-loc":"client/src/pages/AdminDashboard.tsx:41",onClick:()=>m.mutate(),disabled:m.isPending,children:[s.jsx(T,{"data-loc":"client/src/pages/AdminDashboard.tsx:42",className:`mr-2 h-4 w-4 ${m.isPending?"animate-spin":""}`}),"Refresh health"]})]})]}),i.data&&s.jsxs(g,{"data-loc":"client/src/pages/AdminDashboard.tsx:48",children:[s.jsx(R,{"data-loc":"client/src/pages/AdminDashboard.tsx:48",className:"h-4 w-4"}),s.jsxs(b,{"data-loc":"client/src/pages/AdminDashboard.tsx:48",children:["Sandbox validation ",i.data.passed?"passed":"requires attention"]}),s.jsxs(A,{"data-loc":"client/src/pages/AdminDashboard.tsx:48",children:["Checked ",i.data.checks.length," provider adapters using sandbox-only charge and webhook simulations. No live settlement was attempted."]})]}),s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:50",className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:51",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:51",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:51",children:"Total users"}),s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:51",className:"text-2xl",children:e?.totalUsers??"â"})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:51",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:51",className:"text-sm text-muted-foreground",children:"Registered platform users."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:52",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:52",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:52",children:"Transaction count"}),s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:52",className:"text-2xl",children:e?.totalTransactions??"â"})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:52",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:52",className:"text-sm text-muted-foreground",children:"All recorded money movements."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:53",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:53",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:53",children:"Completed volume"}),s.jsxs(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:53",className:"text-2xl",children:["$",e?.totalVolume??"â"]})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:53",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:53",className:"text-sm text-muted-foreground",children:"Completed transaction volume in stored currencies."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:54",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:54",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:54",children:"Active agents"}),s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:54",className:"text-2xl",children:e?.activeAgents??"â"})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:54",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:54",className:"text-sm text-muted-foreground",children:"Agents currently marked active."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",children:"Failed transfers"}),s.jsxs(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",className:"flex items-center gap-2 text-2xl",children:[s.jsx(B,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",className:"h-6 w-6 text-red-600"}),e?.failedTransactions??"â"]}
1)]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:55",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:55",className:"text-sm text-muted-foreground",children:"Requires operational review."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",children:"Pending transfers"}),s.jsxs(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",className:"flex items-center gap-2 text-2xl",children:[s.jsx(N,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",className:"h-6 w-6 text-amber-600"}),e?.pendingTransactions??"â"]})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:56",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:56",className:"text-sm text-muted-foreground",children:"Current pending transaction records."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",children:"Sandbox providers"}),s.jsxs(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",className:"flex items-center gap-2 text-2xl",children:[s.jsx(v,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",className:"h-6 w-6 text-emerald-600"}),C,"/",h.length||7]})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:57",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:57",className:"text-sm text-muted-foreground",children:"Sandbox checks remain separate from live settlement."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",children:"Open alerts"}),s.jsxs(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",className:"flex items-center gap-2 text-2xl",children:[s.jsx(u,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",className:"h-6 w-6 text-amber-600"}),p.length]})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:58",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:58",className:"text-sm text-muted-foreground",children:"Deduplicated operational alerts."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:59",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:59",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:59",children:"Stale Forex positions"}),s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:59",className:"text-2xl",children:e?.staleForexPositions??"â"})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:59",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:59",className:"text-sm text-muted-foreground",children:"Open positions older than 24 hours."})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:60",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:60",className:"pb-3",children:[s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:60",children:"Webhook outcomes"}),s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:60",className:"text-2xl",children:e?`${e.webhookProcessed}/${e.webhookDuplicates}/${e.webhookFailed}`:"â"})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:60",children:s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:60",className:"text-sm text-muted-foreground",children:"Processed / duplicate / failed events."})})]})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:63",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:64",children:[s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:64",children:"Provider health"}),s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:64",children:"Sandbox readiness for payment, mobile-money, SWIFT, and crypto adapters."})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:65",children:k?s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:66",className:"text-sm text-muted-foreground",children:"Loading provider checksâ¦"}):s.jsx("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:66",className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:h.map(a=>s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:68",className:"rounded-xl border bg-card p-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:69",className:"flex items-center justify-between gap-3",children:[s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:69",className:"font-semibold uppercase tracking-wide",children:a.gatewayType.replace("_"," ")}),s.jsx(f,{"data-loc":"client/src/pages/AdminDashboard.tsx:69",variant:w(a.status),children:a.status})]}),s.jsxs("div",{"data-loc":"client/src/pages/AdminDashboard.tsx:70",className:"mt-3 flex items-center gap-2 text-xs text-muted-foreground",children:[s.jsx(N,{"data-loc":"client/src/pages/AdminDashboard.tsx:70",className:"h-3.5 w-3.5"}),a.latencyMs," ms · ",a.mode]}),s.jsx("p",{"data-loc":"client/src/pages/AdminDashboard.tsx:71",className:"mt-2 text-sm text-muted-foreground",children:a.message})]},a.gatewayType))})})]}),s.jsxs(t,{"data-loc":"client/src/pages/AdminDashboard.tsx:78",children:[s.jsxs(c,{"data-loc":"client/src/pages/AdminDashboard.tsx:79",children:[s.jsx(r,{"data-loc":"client/src/pages/AdminDashboard.tsx:79",children:"Actionable alerts"}),s.jsx(d,{"data-loc":"client/src/pages/AdminDashboard.tsx:79",children:"Alerts are deduplicated by source and remain visible until acknowledged or resolved."})]}),s.jsx(l,{"data-loc":"client/src/pages/AdminDashboard.tsx:80",className:"space-y-3",children:p.length===0?s.jsxs(g,{"data-loc":"client/src/pages/AdminDashboard.tsx:81",children:[s.jsx(v,{"data-loc":"client/src/pages/AdminDashboard.tsx:81",className:"h-4 w-4"}),s.jsx(b,{"data-loc":"client/src/pages/AdminDashboard.tsx:81",children:"No open alerts"}),s.jsx(A,{"data-loc":"client/src/pages/AdminDashboard.tsx:81",children:"The current platform snapshot has no unresolved operational alerts."})]}):p.map(a=>s.jsxs(g,{"data-loc":"client/src/pages/AdminDashboard.tsx:82",variant:a.severity==="critical"?"destructive":"default",children:[s.jsx(u,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",className:"h-4 w-4"}),s.jsxs(b,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",className:"flex flex-wrap items-center gap-2",children:[a.title,s.jsx(f,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",variant:w(a.severity),children:a.severity})]}),s.jsxs(A,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[s.jsx("span",{"data-loc":"client/src/pages/AdminDashboard.tsx:83",children:a.message}),s.jsxs("span",{"data-loc":"client/src/pages/AdminDashboard.tsx:83",className:"flex shrink-0 gap-2",children:[s.jsx(x,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",size:"sm",variant:"outline",onClick:()=>j.mutate({id:a.id,status:"acknowledged"}),children:"Acknowledge"}),s.jsx(x,{"data-loc":"client/src/pages/AdminDashboard.tsx:83",size:"sm",onClick:()=>j.mutate({id:a.id,status:"resolved"}),children:"Resolve"})]})]})]},a.id))})]})]})})}export{E 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.