PageSourceSearch

https://sorareinside.com/assets/SysAdminUserUsageView-BJ6vwQ3i.js

js sorareinside.com collected 2026-10-02 02:01:39 UTC 18,484 bytes, 7 lines download raw bytes

1import{n as me,j as e,a as r,d as Q,i as H,r as pe,l as fe,e as t,f as q,S as h,as as Z,bg as C,G as d,ag as ee,ac as $,v as O,at as n,c as p,t as be,bi as _e,a5 as ve,F as Se,ai as W,k as V,m as Y,U as ye,T as Te}from"./index-B7swmYTL.js";import{N as te}from"./NumberInput-gJHTPGPC.js";import{S as he}from"./Select-CK9GqB-4.js";import{P as K}from"./Pagination-DRwIY-tK.js";import{I as Ee}from"./IconDeviceMobile-E7TB4iNf.js";import{T as U}from"./Tabs-BBkleLDi.js";import"./clamp-BzB_x7IF.js";(function(){try{var c=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};c.SENTRY_RELEASE={id:"2ca73fcccbc42b52d2e324a0d85c875e9ada24e2"};var i=new c.Error().stack;i&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[i]="f872b70d-2ea8-444e-ba13-2554e87213b2",c._sentryDebugIdIdentifier="sentry-dbid-f872b70d-2ea8-444e-ba13-2554e87213b2")}catch{}})();/**
2 * @license @tabler/icons-react v3.46.0 - MIT
3 *
4 * This source code is licensed under the MIT license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Ae=[["path",{d:"M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10",key:"svg-0"}],["path",{d:"M7 20h10",key:"svg-1"}],["path",{d:"M9 16v4",key:"svg-2"}],["path",{d:"M15 16v4",key:"svg-3"}]],ze=me("outline","device-desktop","DeviceDesktop",Ae);function Ie(c){if(!c)return{label:"Unknown Device"};const i=c.toLowerCase();if(i.includes("google-apps-script"))return{label:"Google Apps Script",isBot:!0};if(i.includes("stripe"))return{label:"Stripe Webhook",isBot:!0};if(i.includes("github-hookshot"))return{label:"GitHub Webhook",isBot:!0};if(i.includes("netlify"))return{label:"Netlify Functions",isBot:!0};if(i.includes("vercel"))return{label:"Vercel Serverless",isBot:!0};if(i.includes("cloudflare"))return{label:"Cloudflare Worker",isBot:!0};if(i.includes("postmanruntime"))return{label:"Postman",isBot:!0};if(i.includes("curl"))return{label:"curl",isBot:!0};if(i.includes("axios"))return{label:"Axios (Node.js)",isBot:!0};if(i.includes("node-fetch"))return{label:"Node.js (fetch)",isBot:!0};if(i.includes("python-requests"))return{label:"Python Requests",isBot:!0};if(i.includes("instagram"))return{label:"Instagram In-App Browser"};if(i.includes("fbav")||i.includes("facebook"))return{label:"Facebook In-App Browser"};if(i.includes("twitter")||i.includes("x-client"))return{label:"Twitter / X In-App Browser"};if(i.includes("linkedin"))return{label:"LinkedIn In-App Browser"};if(i.includes("whatsapp"))return{label:"WhatsApp In-App Browser"};const l=i.includes("windows nt")?"Windows":i.includes("mac os x")&&!i.includes("iphone")&&!i.includes("ipad")?"macOS":i.includes("iphone")?"iPhone":i.includes("ipad")?"iPad":i.includes("android")?"Android":i.includes("linux")?"Linux":void 0;return i.includes("edg/")?{label:`Edge${l?" on "+l:""}`,browser:"Edge",os:l}:i.includes("chrome/")&&!i.includes("edg/")&&!i.includes("opr/")?{label:`Chrome${l?" on "+l:""}`,browser:"Chrome",os:l}:i.includes("firefox/")?{label:`Firefox${l?" on "+l:""}`,browser:"Firefox",os:l}:i.includes("safari/")&&!i.includes("chrome/")?{label:`Safari${l?" on "+l:""}`,browser:"Safari",os:l}:{label:"Unknown Device / Browser"}}const Ue="_selectedRow_1fsa7_1",De={selectedRow:Ue};Q.extend(pe);Q.extend(fe);const F=({value:c,size:i="sm",prefix:l,dimmed:x=!1})=>{if(!c)return e.jsx(r,{size:i,c:"dimmed",children:"—"});const m=Q(c);return e.jsx(H,{label:m.format("lll"),children:e.jsx(r,{size:i,c:x?"dimmed":void 0,children:l?`${l} ${m.fromNow()}`:m.fromNow()})})},J=5,M=3,de=5,ce=25,X=20,oe=({label:c,placeholder:i,onSearchChange:l})=>{const[x,m]=t.useState(""),[f]=ve(x,300),y=t.useRef(l);return t.useEffect(()=>{y.current=l},[l]),t.useEffect(()=>{y.current(f)},[f]),e.jsx(Se,{label:c,placeholder:i,value:x,onChange:_=>m(_.currentTarget.value),maw:240})},Re=()=>{var se,ne,ie,re,ae,le;const c=t.useRef(null),[i,l]=t.useState(1),[x,m]=t.useState(1),[f,y]=t.useState(1),[_,P]=t.useState(""),[b,v]=t.useState(""),[S,D]=t.useState("devices_30d"),[E,R]=t.useState("desc"),[j,w]=t.useState(null),[A,N]=t.useState("all"),[z,I]=t.useState(1),g=q({queryKey:["sys-admin-user-usage",i,x,f,_,b,A,S,E],queryFn:async()=>(await V().get(Y.SYS_ADMIN_USER_USAGE,{params:{page:i,pageSize:ce,minDevices30d:x,minRegions30d:f,searchText:_.trim()||void 0,usernameSearchText:b.trim()||void 0,roleFilter:A,sortColumn:S,sortDirection:E}})).data,placeholderData:W}),a=q({queryKey:["sys-admin-user-usage-sessions",j,z],queryFn:async()=>{var u;const s=await V().get(Y.SYS_ADMIN_USER_USAGE_SESSIONS(j||""),{params:{limit:X,page:z}});return(u=c.current)==null||u.scrollIntoView({behavior:"smooth"}),s.data},enabled:!!j,placeholderData:W}),o=((se=g.data)==null?void 0:se.data)??[],k=(ne=g.data)!=null&&ne.count&&g.data.count>0?Math.ceil(g.data.count/ce):0;t.useMemo(()=>o.filter(s=>(s.devices_30d??0)>=J||(s.regions_30d??0)>=M||(s.sorare_disconnects_30d??0)>de),[o]);const ue=s=>
6{const u=s.is_system_admin?"SysAdmin":s.is_expert?"Expert":s.is_ambassador?"Affiliate":s.is_paying?"Paying user":s.is_friends_and_family?"Friends & Family":"Free user";return e.jsx(p,{size:"sm",variant:"light",color:"gray",children:u})},xe=s=>s.length?s.map(u=>e.jsxs(p,{color:u.event_type==="logout"?"gray":"blue",size:"xs",children:[u.event_type," · ",Q(u.created_at).fromNow()]},`${u.session_id}-${u.created_at}-${u.event_type}`)):e.jsx(r,{size:"xs",c:"dimmed",children:"No events recorded"});return e.jsxs(h,{gap:"lg",children:[!g.isLoading&&g.isError?e.jsx(Z,{icon:e.jsx(C,{size:16}),color:"red",variant:"light",children:((ie=g.error)==null?void 0:ie.message)||"Failed to load usage rollups"}):null,e.jsxs(d,{gap:"md",justify:"space-between",align:"flex-end",children:[e.jsxs(d,{children:[e.jsx(te,{label:"Min devices (30d)",value:x,onChange:s=>{l(1),m(Number(s)||0)},min:0,maw:180}),e.jsx(te,{label:"Min regions (30d)",value:f,onChange:s=>{l(1),y(Number(s)||0)},min:0,maw:180}),e.jsx(oe,{label:"Search email",placeholder:"[email protected]",onSearchChange:s=>{l(1),P(s)}}),e.jsx(oe,{label:"Search username",placeholder:"username",onSearchChange:s=>{l(1),v(s)}}),e.jsx(he,{label:"Filter by role/subscription",placeholder:"All users",data:[{value:"all",label:"All users"},{value:"expert",label:"Experts"},{value:"ambassador",label:"Affiliates"},{value:"friends_and_family",label:"Friends & Family"},{value:"sysadmin",label:"SysAdmins"},{value:"paying_regular",label:"Paying regulars"},{value:"free_regular",label:"Free regulars"}],value:A,onChange:s=>{l(1),N(s??"all")},maw:200})]}),e.jsxs(d,{children:[e.jsxs(h,{gap:2,children:[e.jsx(r,{size:"sm",c:"dimmed",children:"Sort by"}),e.jsx(ee,{value:S,onChange:s=>D(s),data:[{label:"Devices 30d",value:"devices_30d"},{label:"Regions 30d",value:"regions_30d"},{label:"Sessions 30d",value:"sessions_30d"},{label:"Last seen",value:"last_seen_30d"}]})]}),e.jsxs(h,{gap:2,children:[e.jsx(r,{size:"sm",c:"dimmed",children:"Direction"}),e.jsx(ee,{value:E,onChange:s=>R(s),data:[{label:"Desc",value:"desc"},{label:"Asc",value:"asc"}]})]})]})]}),e.jsx($,{withBorder:!0,radius:"md",children:e.jsxs(h,{gap:"xs",p:"md",children:[e.jsxs(d,{justify:"space-between",children:[e.jsxs(d,{children:[e.jsxs(r,{size:"xs",c:"dimmed",children:[((re=g==null?void 0:g.data)==null?void 0:re.count)??0," users found"]}),g.isFetching?e.jsx(O,{size:"xs"}):null]}),e.jsx(r,{fw:600,children:"30d rollup"})]}),e.jsxs(n,{striped:!0,highlightOnHover:!0,children:[e.jsx(n.Thead,{children:e.jsxs(n.Tr,{children:[e.jsx(n.Th,{children:"User"}),e.jsx(n.Th,{children:"Role"}),e.jsx(n.Th,{children:"Sessions"}),e.jsx(n.Th,{children:"Devices"}),e.jsx(n.Th,{children:"Regions"}),e.jsx(n.Th,{children:"Countries"}),e.jsx(n.Th,{children:"Last seen"}),e.jsx(n.Th,{children:"Sorare reconnects"})]})}),e.jsxs(n.Tbody,{children:[o.map(s=>{const u=(s.devices_30d??0)>=J||(s.regions_30d??0)>=M||(s.sorare_disconnects_30d??0)>de,T=j===s.user_id;return e.jsxs(n.Tr,{onClick:()=>{w(s.user_id),I(1)},style:{cursor:"pointer"},className:T?De.selectedRow:void 0,children:[e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsxs(d,{gap:"xs",children:[e.jsx(r,{fw:600,children:s.username||s.email||"unknown user"}),u?e.jsx(p,{variant:"light",color:"orange",size:"sm",leftSection:e.jsx(C,{size:14}),children:"Unusual activity"}):null]}),e.jsxs(d,{gap:6,children:[e.jsx(F,{value:s.user_created_at,size:"xs",prefix:"Joined",dimmed:!0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["· ",s.email??"-"]})]})]})}),e.jsx(n.Td,{children:ue(s)}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:s.sessions_30d??0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["7d: ",s.sessions_7d??0]})]})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:s.devices_30d??0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["7d: ",s.devices_7d??0]})]})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:s.regions_30d??0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["7d: ",s.regions_7d??0]})]})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:s.countries_30d??0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["7d: ",s.countries_7d??0]})]})}),e.jsx(n.Td,{children:e.jsx(F,{value:s.last_seen_30d})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:s.sorare_disconnects_30d??0}),e.jsxs(r,{size:"xs",c:"dimmed",children:["Connects: ",s.sorare_connects_30d??0]})]})})]}
6,s.user_id)}),o.length?null:e.jsx(n.Tr,{children:e.jsx(n.Td,{colSpan:8,children:e.jsx(r,{size:"sm",c:"dimmed",children:"No data found with the selected filters."})})})]})]}),k>1?e.jsx(be,{children:e.jsx(K,{size:"xs",color:"gray",value:i,onChange:l,total:k,mt:"xs"})}):null]})}),j?e.jsxs($,{ref:c,hidden:!j,withBorder:!0,radius:"md",p:"md",children:[e.jsxs(d,{justify:"space-between",mb:"xs",children:[e.jsxs(d,{gap:"xs",children:[e.jsx(r,{fw:600,children:"Recent sessions"}),e.jsx(p,{color:"gray",size:"sm",variant:"light",children:j}),(ae=o.find(s=>s.user_id===j))!=null&&ae.username?e.jsx(r,{c:"dimmed",size:"sm",children:(le=o.find(s=>s.user_id===j))==null?void 0:le.username}):null]}),e.jsxs(d,{gap:"xs",children:[(()=>{const s=o.find(je=>je.user_id===j),u=(s==null?void 0:s.devices_30d)??0,T=(s==null?void 0:s.regions_30d)??0,B=(s==null?void 0:s.countries_30d)??0,G=u>=J?"orange":"gray",L=T>=M?"orange":"gray",ge=B>=M?"orange":"gray";return e.jsxs(e.Fragment,{children:[e.jsxs(p,{size:"sm",color:G,variant:"light",children:["Devices: ",u]}),e.jsxs(p,{size:"sm",color:L,variant:"light",children:["Regions: ",T]}),e.jsxs(p,{size:"sm",color:ge,variant:"light",children:["Countries: ",B]})]})})(),e.jsx(_e,{onClick:()=>{w(null),I(1)}}),a.isFetching?e.jsx(O,{size:"sm"}):null]})]}),a.isLoading?e.jsx(O,{size:"sm"}):a.data&&a.data.sessions.length?e.jsxs(n,{striped:!0,withRowBorders:!1,children:[e.jsx(n.Thead,{children:e.jsxs(n.Tr,{children:[e.jsx(n.Th,{children:"When"}),e.jsx(n.Th,{children:"Location"}),e.jsx(n.Th,{children:"Browser/Device"}),e.jsx(n.Th,{children:"Events"})]})}),e.jsx(n.Tbody,{children:a.data.sessions.map(s=>{var G,L;const u=((L=(G=a.data)==null?void 0:G.eventsBySession)==null?void 0:L[s.id])??[],T=u[0],B=Ie(s.user_agent);return e.jsxs(n.Tr,{children:[e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsxs(d,{gap:6,children:[e.jsx(F,{value:s.created_at,size:"sm"}),T?e.jsx(p,{size:"xs",variant:"light",children:T.event_type}):null]}),e.jsxs(r,{size:"xs",c:"dimmed",children:["Session ",s.id.slice(0,8)]})]})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(r,{children:[s.geo_city,s.geo_region,s.geo_country].filter(Boolean).join(", ")||"Unknown"}),e.jsxs(r,{size:"xs",c:"dimmed",children:["IP hash ",s.ip_hash.slice(0,10)]})]})}),e.jsx(n.Td,{children:e.jsxs(h,{gap:2,children:[e.jsx(d,{gap:6,children:e.jsx(H,{label:s.user_agent??"Unknown",children:e.jsxs(d,{gap:4,children:[s.is_mobile?e.jsx(Ee,{size:14}):e.jsx(ze,{size:14}),e.jsx(r,{size:"sm",truncate:!0,maw:240,children:B.label})]})})}),e.jsxs(r,{size:"xs",c:"dimmed",children:["Fingerprint ",s.fingerprint_hash.slice(0,10)]})]})}),e.jsx(n.Td,{children:e.jsx(h,{gap:2,children:xe(u)})})]},s.id)})})]}):e.jsx(r,{size:"sm",c:"dimmed",children:"No session data for this user yet."}),a.data&&a.data.count>X?e.jsx(d,{justify:"center",mt:"sm",children:e.jsx(K,{size:"xs",color:"gray",value:z,onChange:I,total:Math.ceil((a.data.count??0)/X)})}):null]}):null]})},we=()=>{var w,A,N,z,I,g;const[i,l]=t.useState("30d"),[x,m]=t.useState("all"),[f,y]=t.useState(1),[_,P]=t.useState(1),b=q({queryKey:["sys-admin-user-usage-sharing-ip",i,x,f],queryFn:async()=>(await V().get(Y.SYS_ADMIN_USER_USAGE_SHARING_IP,{params:{window:i,roleFilter:x,page:f,pageSize:20}})).data,placeholderData:W}),v=q({queryKey:["sys-admin-user-usage-sharing-fingerprint",i,x,_],queryFn:async()=>(await V().get(Y.SYS_ADMIN_USER_USAGE_SHARING_FINGERPRINT,{params:{window:i,roleFilter:x,page:_,pageSize:20}})).data,placeholderData:W});t.useEffect(()=>{y(1),P(1)},[i,x]);const S=((w=b.data)==null?void 0:w.data)??[],D=((A=v.data)==null?void 0:A.data)??[],E=typeof((N=b.data)==null?void 0:N.count)=="number"?b.data.count:S.length,R=typeof((z=v.data)==null?void 0:z.count)=="number"?v.data.count:D.length,j=a=>e.jsx(h,{gap:4,children:a.map(o=>{const k=o.username||o.email||"Unknown user";return e.jsx(H,{label:o.user_id,children:e.jsx(r,{size:"sm",children:k})},o.user_id)})});return e.jsxs(h,{gap:"lg",children:[e.jsxs(d,{gap:"md",justify:"space-between",align:"flex-end",children:[e.jsx(he,{label:"Filter by role/subscription",placeholder:"All users",data:[{value:"all",label:"All users"},{value:"expert",label:"Experts"},{value:"ambassador",label:"Affiliates"},{value:"friends_and_family",label:"Friends & Family"},{value:"sysadmin",label:"SysAdmins"},{value:"paying_regular",label:"Paying regulars"},{value:"free_regular",label:"Free regulars"}],value:x,onChange:a=>m(a??"all"),maw:220}),e.jsxs(d,{children:[b.isFetching||v.isFetching?e.jsx(O,{size:"sm"}):null,e.jsxs(h,{gap:2,children:[e.jsx(r,{size:"sm",c:"dimmed",children:"Time window"}),e.jsx(ee,{value:i,onChange:a=>l(a??"30d"),data:[{label:"7d",value:"7d"},{label:"30d",value:"30d"}]})]})]})]}),e.jsxs($,{withBorder:!0,radius:"md",p:"md",children:[e.jsxs(d,{justify:"space-between",mb:"xs",children:[e.jsx(r,{fw:600,children:"IP sharing"}),e.jsxs(r,{size:"sm",c:"dimmed",children:[S.length," hot IP hashes"]})]}),b.isError?e.jsx(Z,{icon:e.jsx(C,{size:16}),color:"red",variant:"light",children:((I=b.error)==null?void 0:I.message)||"Failed to load IP sharing"}):e.jsxs(n,{striped:!0,highlightOnHover:!0,children:[e.jsx(n.Thead,{children:e.jsxs(n.Tr,{children:[e.jsx(n.Th,{children:"IP hash"}),e.jsx(n.Th,{ta:"center",children:"Distinct users"}),e.jsx(n.Th,{ta:"center",children:"Sessions"}),e.jsx(n.Th,{children:"Last seen"}),e.jsx(n.Th,{children:"Users"}),e.jsx(n.Th,{children:"Role"})]})}),e.jsxs(n.Tbody,{children:[S.map(a=>e.jsxs(n.Tr,{children:[e.jsx(n.Td,{valign:"top",children:e.jsx(r,{size:"sm",children:(a.ip_hash??a.fingerprint_hash??"").slice(0,12)||"Unknown"})})," ",e.jsx(n.Td,{valign:"top",ta:"center",children:a.distinct_users}),e.jsx(n.Td,{valign:"top",ta:"center",children:a.session_count}),e.jsx(n.Td,{valign:"top",children:e.jsx(F,{value:a.last_seen_at})}),e.jsx(n.Td,{children:j(a.users)}),e.jsx(n.Td,{children:e.jsx(h,{gap:4,children:a.users.map(o=>e.jsx(p,{size:"sm",variant:"light",color:"gray",children:o.role==="sysadmin"?"SysAdmin":o.role==="expert"?"Expert"
6:o.role==="ambassador"?"Affilate":"Regular"}))})})]},a.ip_hash??a.fingerprint_hash??"unknown-ip")),S.length?null:e.jsx(n.Tr,{children:e.jsx(n.Td,{colSpan:6,children:e.jsx(r,{size:"sm",c:"dimmed",children:"No IP sharing signals for this window/role."})})})]})]}),E>20?e.jsx(d,{justify:"center",mt:"sm",children:e.jsx(K,{size:"xs",color:"gray",value:f,onChange:y,total:Math.ceil(E/20)})}):null]}),e.jsxs($,{withBorder:!0,radius:"md",p:"md",children:[e.jsxs(d,{justify:"space-between",mb:"xs",children:[e.jsxs(d,{children:[e.jsx(r,{fw:600,children:"Device fingerprint sharing"}),e.jsx(H,{label:"Device fingerprints are generated based on browser and device characteristics, so multiple users using similar devices, OS, and browser, can share the same fingerprint.",children:e.jsx(p,{size:"sm",color:"yellow",variant:"light",children:"Caution"})})]}),e.jsxs(r,{size:"sm",c:"dimmed",children:[R," hot fingerprints"]})]}),v.isError?e.jsx(Z,{icon:e.jsx(C,{size:16}),color:"red",variant:"light",children:((g=v.error)==null?void 0:g.message)||"Failed to load fingerprint sharing"}):e.jsxs(n,{striped:!0,highlightOnHover:!0,children:[e.jsx(n.Thead,{children:e.jsxs(n.Tr,{children:[e.jsx(n.Th,{children:"Fingerprint"}),e.jsx(n.Th,{ta:"center",children:"Distinct users"}),e.jsx(n.Th,{ta:"center",children:"Sessions"}),e.jsx(n.Th,{children:"Last seen"}),e.jsx(n.Th,{children:"Users"}),e.jsx(n.Th,{children:"Role"})]})}),e.jsxs(n.Tbody,{children:[D.map(a=>e.jsxs(n.Tr,{children:[e.jsx(n.Td,{valign:"top",children:e.jsx(r,{size:"sm",children:(a.fingerprint_hash??a.ip_hash??"").slice(0,12)||"Unknown"})}),e.jsx(n.Td,{valign:"top",ta:"center",children:a.distinct_users}),e.jsx(n.Td,{valign:"top",ta:"center",children:a.session_count}),e.jsx(n.Td,{valign:"top",children:e.jsx(F,{value:a.last_seen_at})}),e.jsx(n.Td,{children:j(a.users)}),e.jsx(n.Td,{children:e.jsx(h,{gap:4,children:a.users.map(o=>e.jsx(p,{size:"sm",variant:"light",color:"gray",children:o.role==="sysadmin"?"SysAdmin":o.role==="expert"?"Expert":o.role==="ambassador"?"Affiliate":"Regular"}))})})]},a.fingerprint_hash??a.ip_hash??"unknown-fp")),D.length?null:e.jsx(n.Tr,{children:e.jsx(n.Td,{colSpan:6,children:e.jsx(r,{size:"sm",c:"dimmed",children:"No fingerprint sharing signals for this window/role."})})})]})]}),R>20?e.jsx(d,{justify:"center",mt:"sm",children:e.jsx(K,{size:"xs",color:"gray",value:_,onChange:P,total:Math.ceil(R/20)})}):null]})]})},Le=()=>{const{currentUserEmail:c,currentUserIsSysAdmin:i}=t.useContext(ye),[l,x]=t.useState("usage");return c&&!i?e.jsx(Z,{icon:e.jsx(C,{size:16}),color:"red",variant:"light",maw:480,children:"Only system administrators can access the account usage dashboard."}):e.jsxs(h,{gap:"lg",children:[e.jsx(Te,{order:2,ff:"Urbanist",children:"Account Usage Signals"}),e.jsxs(U,{value:l,onChange:m=>x(m??"usage"),children:[e.jsxs(U.List,{children:[e.jsx(U.Tab,{value:"usage",children:"Account sharing"}),e.jsx(U.Tab,{value:"sharing",children:"Account collusion"})]}),e.jsx(U.Panel,{value:"usage",pt:"md",children:e.jsx(Re,{})}),e.jsx(U.Panel,{value:"sharing",pt:"md",children:e.jsx(we,{})})]})]})};export{Le as default};
7//# sourceMappingURL=SysAdminUserUsageView-BJ6vwQ3i.js.map

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.