PageSourceSearch

https://app.oncue.so/assets/index-Cm_XiRDy.js

js oncue.so collected 2026-10-04 22:53:30 UTC 4,325 bytes, 1 lines download raw bytes

1import{b as h,r as u,j as a,e as K}from"./main-DaCJV-qv.js";import{C as i,a as c,b as d,d as m}from"./card-Dr429RDF.js";import{C as p,b as j,c as g,d as S,e as _,a as q,X as D,Y as E}from"./chart-DAmkF2kc.js";import{T as F,a as M,b as C,c as r,d as R,e as o}from"./table-CN4F4qeH.js";import{S as n,C as U}from"./stat-card-CvD4YJPp.js";import{g as O,b as H}from"./admin-DqhKir3H.js";import{P as W,a as B}from"./PieChart-DRiN5F02.js";import{A as X,a as Y}from"./AreaChart-DsXhDDVv.js";import"./string-BdUvTvAo.js";import"./band-CquvqAHh.js";import"./init-Dmth1JHB.js";import"./ordinal-DILIJJjt.js";import"./linear-BlLy4CdH.js";import"./defaultLocale-C4B-KCzX.js";import"./time-CsvSNxEm.js";const l=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-4)","var(--chart-5)"],$={count:{label:"Connections",color:"var(--chart-1)"}};function ia(){const{data:s,isLoading:y,error:v}=h({queryKey:["admin-platform-stats"],queryFn:()=>O()}),{data:P,isLoading:N,error:A}=h({queryKey:["admin-timeseries","connections"],queryFn:()=>H("connections",30)}),b=u.useMemo(()=>{const t={};return(s?.platforms??[]).forEach((e,w)=>{t[e.platform]={label:e.platform,color:l[w%l.length]}}),t},[s]),f=u.useMemo(()=>(s?.platforms??[]).map((t,e)=>({...t,fill:l[e%l.length]})),[s]),T=y||N,L=v||A;if(T)return a.jsx("div",{className:"flex items-center justify-center py-12",children:a.jsx(K,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(L)return a.jsx("div",{className:"py-12 text-center text-muted-foreground",children:"Failed to load platform statistics. Please try again."});const x=s?.platforms.reduce((t,e)=>t+e.total_accounts,0)??0,k=s?.platforms.find(t=>t.platform===s.mostPopularPlatform)?.total_accounts??0;return a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[a.jsx(n,{title:"Total Connected Accounts",value:s?.totalAccounts??0}),a.jsx(n,{title:"Most Popular Platform",value:s?.mostPopularPlatform??"N/A",subtitle:s?.mostPopularPlatform?`${k} accounts`:void 0}),a.jsx(n,{title:"Users With No Accounts",value:s?.usersWithNoAccounts??0,className:s&&s.usersWithNoAccounts>0?"border-orange-500/50":""}),a.jsx(n,{title:"Avg Accounts Per User",value:s?.avgAccountsPerUser??0})]}),a.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[a.jsxs(i,{children:[a.jsx(c,{children:a.jsx(d,{className:"text-lg font-medium",children:"Platform Distribution"})}),a.jsx(m,{children:a.jsx(p,{config:b,className:"h-[300px] w-full",children:a.jsxs(W,{children:[a.jsx(B,{data:f,dataKey:"total_accounts",nameKey:"platform",cx:"50%",cy:"50%",outerRadius:100,innerRadius:60,paddingAngle:2,children:f.map(t=>a.jsx(U,{fill:t.fill},t.platform))}),a.jsx(j,{content:a.jsx(g,{nameKey:"platform"})}),a.jsx(S,{content:a.jsx(_,{nameKey:"platform"})})]})})})]}),a.jsxs(i,{children:[a.jsx(c,{children:a.jsx(d,{className:"text-lg font-medium",children:"New Connections (30 days)"})}),a.jsx(m,{children:a.jsx(p,{config:$,className:"h-[300px] w-full",children:a.jsxs(X,{data:P??[],margin:{left:12,right:12},children:[a.jsx(q,{strokeDasharray:"3 3",vertical:!1}),a.jsx(D,{dataKey:"date",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:t=>new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric"})}),a.jsx(E,{tickLine:!1,axisLine:!1,tickMargin:8,allowDecimals:!1}),a.jsx(j,{content:a.jsx(g,{})}),a.jsx(Y,{type:"monotone",dataKey:"count",stroke:"var(--color-count)",fill:"var(--color-count)",fillOpacity:.1})]})})})]})]}),a.jsxs(i,{children:[a.jsx(c,{children:a.jsx(d,{className:"text-lg font-medium",children:"Platform Breakdown"})}),a.jsx(m,{children:s?.platforms&&s.platforms.length>0?a.jsx("div",{className:"rounded-md border",children:a.jsxs(F,{children:[a.jsx(M,{children:a.jsxs(C,{children:[a.jsx(r,{children:"Platform"}),a.jsx(r,{children:"Total Accounts"}),a.jsx(r,{children:"Unique Users"}),a.jsx(r,{children:"% of Total"})]})}),a.jsx(R,{children:s.platforms.map(t=>a.jsxs(C,{children:[a.jsx(o,{className:"font-medium capitalize",children:t.platform}),a.jsx(o,{children:t.total_accounts}),a.jsx(o,{children:t.unique_users}),a.jsx(o,{children:x>0?`${(t.total_accounts/x*100).toFixed(1)}%`:"0%"})]},t.platform))})]})}):a.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"No platform data available."})})]})]})}export{ia 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.