PageSourceSearch

https://solarintelligence.ai/assets/AdminDashboard-FmtH4szy.js

js solarintelligence.ai collected 2026-10-05 12:51:01 UTC 4,842 bytes, 1 lines download raw bytes

1import{j as a}from"./state-DKBP_IF5.js";import{r as n,L as v}from"./react-vendor-Unhn4PzF.js";import{t as j}from"./ui-Dw3dkPmY.js";import{c as i,u as N,e as d,a7 as k}from"./index-Br3_ARw7.js";import{U as A,A as C}from"./AdminUsageDashboard-vkVrfBLD.js";import{A as S}from"./AdminPageChrome-TdsAIsqV.js";import{C as _}from"./clock-DnAhP72k.js";import{U}from"./user-plus-DCW8OCSS.js";import{M}from"./message-square-BvcYC84r.js";import{C as L}from"./clipboard-list-C2XbsuEp.js";import{B as P}from"./building-2-CaI-KLWC.js";import{C as I}from"./chevron-right-BTFtdlbc.js";import"./charts-D5dg506X.js";import"./forms-GD8l5aEM.js";import"./AdminIncludeAdminsToggle-Dzktzck7.js";import"./activity-BM_sYnFs.js";window.CESIUM_BASE_URL="/cesium/";const z=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]],B=i("inbox",z);const R=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],q=i("mail",R);const D=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],E=i("shield-alert",D);const V=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]],w=i("shield-plus",V),F=[{title:"Users",links:[{to:"/admin/users",label:"All Users",badge:null,icon:A},{to:"/admin/users/pending",label:"Pending",badge:null,icon:_},{to:"/admin/users/create",label:"Create User",badge:null,icon:U}]},{title:"Analytics",links:[{to:"/admin/analytics",label:"Full Analytics",badge:null,icon:k},{to:"/admin/analytics/conversations",label:"Conversations",badge:null,icon:M},{to:"/admin/analytics/surveys",label:"Surveys",badge:null,icon:L}]},{title:"Platform",links:[{to:"/admin/organizations",label:"Organizations",badge:null,icon:P},{to:"/admin/contact-requests",label:"Contact Inbox",badge:null,icon:B},{to:"/admin/contact-requests?status=pending",label:"Pending Contacts",badge:null,icon:q}]},{title:"Security",links:[{to:"/admin/breaches",label:"Active Breaches",badge:null,icon:E},{to:"/admin/breaches",label:"Report Breach",badge:null,icon:w}]}];function ia(){const{user:h}=N(),[r,u]=n.useState({totalUsers:0,pendingVerifications:0}),[c,p]=n.useState(null),[b,m]=n.useState(!0),[t,g]=n.useState(30),[l,x]=n.useState(!1);n.useEffect(()=>{let s=!1;return(async()=>{try{m(!0);const[e,o,f]=await Promise.all([d.getUsers(),d.getPendingUsers(),d.getAnalyticsFullReport(t,void 0,l)]);if(s)return;u({totalUsers:e.length,pendingVerifications:o.length}),p(f.data)}catch(e){s||(console.error("Failed to load admin dashboard:",e),j.error("Failed to load dashboard data"))}finally{s||m(!1)}})(),()=>{s=!0}},[t,l]);const y=F.map(s=>({...s,links:s.links.map(e=>e.to==="/admin/users/pending"&&r.pendingVerifications>0?{...e,badge:String(r.pendingVerifications)}:e)}));return a.jsxs("div",{className:"admin-dashboard",children:[a.jsx(S,{backTo:"/agents",backLabel:"Back to App"}),a.jsx("div",{className:"admin-header",children:a.jsxs("div",{children:[a.jsx("h1",{children:"Admin Dashboard"}),a.jsxs("p",{className:"admin-subtitle",children:["Welcome back, ",h?.full_name||"Administrator"]})]})}),a.jsxs("div",{className:"admin-dashboard-layout",children:[a.jsx("main",{className:"admin-dashboard-main",children:b?a.jsxs("div",{className:"admin-dashboard-loading",children:[a.jsx("div",{className:"loading-spinner"}),a.jsx("p",{children:"Loading usage analytics..."})]}):c?a.jsx(C,{report:c,selectedPeriod:t,onPeriodChange:g,includeAdmins:l,onIncludeAdminsChange:x,compact:!0}):a.jsx("p",{className:"admin-dashboard-empty",children:"Analytics unavailable"})}),a.jsxs("aside",{className:"admin-nav-panel",children:[a.jsx("h2",{className:"admin-nav-panel__title",children:"Qu
1ick links"}),a.jsx("div",{className:"admin-nav-sections",children:y.map(s=>a.jsxs("div",{className:"admin-nav-section",children:[a.jsx("h3",{className:"admin-nav-section__title",children:s.title}),a.jsx("ul",{className:"admin-nav-section__links",children:s.links.map(e=>{const o=e.icon;return a.jsx("li",{children:a.jsxs(v,{to:e.to,className:"admin-nav-link",children:[a.jsx(o,{size:14,strokeWidth:2,"aria-hidden":!0}),a.jsx("span",{children:e.label}),e.badge&&a.jsx("span",{className:"admin-nav-badge",children:e.badge}),a.jsx(I,{size:14,className:"admin-nav-chevron","aria-hidden":!0})]})},e.to+e.label)})})]},s.title))})]})]})]})}export{ia 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.