PageSourceSearch

https://trueresume.ai/_next/static/chunks/pages/admin/sessions-67c2a58bba1034d8.js

js trueresume.ai collected 2026-10-02 01:12:57 UTC 12,245 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7484],{52836:function(e,s,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/sessions",function(){return t(49557)}])},52217:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]])},43765:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},23346:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("Calendar",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2",key:"eu3xkr"}],["line",{x1:"16",x2:"16",y1:"2",y2:"6",key:"m3sa8f"}],["line",{x1:"8",x2:"8",y1:"2",y2:"6",key:"18kwsl"}],["line",{x1:"3",x2:"21",y1:"10",y2:"10",key:"xt86sb"}]])},60493:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("CheckCircle",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},61258:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},4307:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},50039:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},37864:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},9475:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});let a=(0,t(63759).Z)("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},49557:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return N}});var a=t(85893),n=t(67294),i=t(9008),l=t.n(i),r=t(11163),c=t(85412),d=t(67694),x=t(61258),o=t(60493),m=t(43765),h=t(52217),u=t(9475),p=t(50039),y=t(23346),f=t(37864),j=t(8267),g=t(4307);function N(){let{theme:e}=(0,d.F)(),s=(0,r.useRouter)(),[t,i]=(0,n.useState)([]),[N,b]=(0,n.useState)(null),[v,k]=(0,n.useState)(!0),[w,Z]=(0,n.useState)(!0),[S,C]=(0,n.useState)(1),[A,F]=(0,n.useState)(1),[_,E]=(0,n.useState)(""),[D,L]=(0,n.useState)(""),[M,T]=(0,n.use
1State)("");(0,n.useEffect)(()=>{let e=localStorage.getItem("admin_key");if(!e){s.push("/admin");return}E(e),I(e)},[S,w,s]);let I=async e=>{try{k(!0);let s=new URLSearchParams({page:S.toString(),limit:"20",activeOnly:w.toString()}),t=await fetch("/api/admin/sessions?".concat(s),{headers:{"x-admin-key":e}});if(!t.ok)throw Error("Failed to fetch sessions");let a=await t.json();i(a.sessions),b(a.stats),F(a.pagination.pages)}catch(e){L(e.message)}finally{k(!1)}},O=async e=>{if(confirm("Are you sure you want to delete this session?"))try{if(!(await fetch("/api/admin/sessions",{method:"DELETE",headers:{"x-admin-key":_,"Content-Type":"application/json"},body:JSON.stringify({sessionId:e})})).ok)throw Error("Failed to delete session");T("Session deleted successfully"),I(_),setTimeout(()=>T(""),3e3)}catch(e){L(e.message)}},P=async(e,s)=>{if(confirm("Delete all sessions for ".concat(s,"?")))try{let s=await fetch("/api/admin/sessions",{method:"POST",headers:{"x-admin-key":_,"Content-Type":"application/json"},body:JSON.stringify({userId:e})});if(!s.ok)throw Error("Failed to invalidate sessions");let t=await s.json();T("Deleted ".concat(t.deletedCount," session(s)")),I(_),setTimeout(()=>T(""),3e3)}catch(e){L(e.message)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l(),{children:(0,a.jsx)("title",{children:"Sessions Management - Admin Dashboard"})}),(0,a.jsx)(c.Z,{}),(0,a.jsxs)("div",{className:"min-h-screen pt-16 ".concat("dark"===e?"bg-[#030303]":"bg-transparent"),children:[(0,a.jsx)("div",{className:"border-b ".concat("dark"===e?"bg-[#1A1A1B] border-[#343536]":"bg-white  border-[#EDEFF1]"),children:(0,a.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:(0,a.jsx)("div",{className:"flex items-center justify-between",children:(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("button",{onClick:()=>s.push("/admin"),className:"p-2 rounded-lg ".concat("dark"===e?"hover:bg-[#272729]":"hover:bg-gray-100"),children:(0,a.jsx)(x.Z,{className:"w-5 h-5"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-sharp text-3xl font-bold",style:{fontFamily:"Rajdhani, sans-serif"},children:"Sessions Management"}),(0,a.jsx)("p",{className:"text-sm mt-1 ".concat("dark"===e?"text-[#818384]":"text-gray-600"),children:"Monitor and manage user sessions"})]})]})})})}),(0,a.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[M&&(0,a.jsxs)("div",{className:"mb-4 glass rounded-xl p-4 border-l-4 border-green-500 flex items-center gap-2",children:[(0,a.jsx)(o.Z,{className:"w-5 h-5 text-green-500"}),(0,a.jsx)("span",{children:M})]}),D&&(0,a.jsxs)("div",{className:"mb-4 glass rounded-xl p-4 border-l-4 border-red-500 flex items-center gap-2",children:[(0,a.jsx)(m.Z,{className:"w-5 h-5 text-red-500"}),(0,a.jsx)("span",{children:D})]}),N&&(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6 mb-8",children:[(0,a.jsxs)("div",{className:"glass rounded-2xl p-6 shadow-premium ".concat("dark"===e?"glass-dark":""),children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,a.jsx)(h.Z,{className:"w-8 h-8 text-green-500"})}),(0,a.jsx)("div",{className:"text-3xl font-bold text-sharp",children:N.active}),(0,a.jsx)("div",{className:"text-sm text-gray-400 mt-1",children:"Active Sessions"})]}),(0,a.jsxs)("div",{className:"glass rounded-2xl p-6 shadow-premium ".concat("dark"===e?"glass-dark":""),children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,a.jsx)(u.Z,{className:"w-8 h-8 text-red-500"})}),(0,a.jsx)("div",{className:"text-3xl font-bold text-sharp",children:N.expired}),(0,a.jsx)("div",{className:"text-sm text-gray-400 mt-1",children:"Expired Sessions"})]}),(0,a.jsxs)("div",{className:"glass rounded-2xl p-6 shadow-premium ".concat("dark"===e?"glass-dark":""),children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,a.jsx)(p.Z,{className:"w-8 h-8 text-blue-500"})}),(0,a.jsx)("div",{className:"text-3xl font-bold text-sharp",children:N.recent}),(0,a.jsx)("div",{className:"text-sm text-gray-400 mt-1",children:"Last Hour"})]}),(0,a.jsxs)("div",{className:"glass rounded-2xl p-6 shadow-premium ".concat("dark"===e?"glass-dark":""),children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,a.jsx)(y.Z,{className:"w-8 h-8 text-[#FF4500]"})}),(0,a.jsx)("div",{className:"text-3xl font-bold text-sharp",children:N.total}),(0,a.jsx)("div",{className:"text-sm text-gray-400 mt-1",children:"Total Sessions"})]})]}),(0,a.jsx)("div",{className:"glass rounded-2xl p-6 mb-6 shadow-premium ".concat("dark"===e?"glass-dark":""),children:(0,a.jsx)("div",{className:"flex items-center gap-4",children:(0,a.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:w,onChange:e=>Z(e.target.checked),className:"w-4 h-4 rounded border-gray-300"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:"Show Active Only"})]})})}),v?(0,a.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,a.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"})}):0===t.length?(0,a.jsxs)("div",{className:"text-center py-20",children:[(0,a.jsx)(h.Z,{className:"w-16 h-16 mx-auto mb-4 text-gray-400"}),(0,a.jsx)("p",{className:"text-xl font-semibold",children:"No sessions foun
1d"})]}):(0,a.jsxs)("div",{className:"glass rounded-2xl shadow-premium overflow-hidden ".concat("dark"===e?"glass-dark":""),children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full",children:[(0,a.jsx)("thead",{className:"".concat("dark"===e?"bg-[#272729]":"bg-gray-50"),children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"User"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Session ID"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Device Info"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Created"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Last Seen"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Status"}),(0,a.jsx)("th",{className:"px-6 py-4 text-left text-xs font-semibold uppercase tracking-wider",children:"Actions"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-[#343536]",children:t.map(e=>{var s,t,n;return(0,a.jsxs)("tr",{className:"hover:bg-[#272729]",children:[(0,a.jsx)("td",{className:"px-6 py-4",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-semibold",children:(null===(s=e.userId)||void 0===s?void 0:s.name)||"No name"}),(0,a.jsx)("div",{className:"text-sm text-gray-400",children:null===(t=e.userId)||void 0===t?void 0:t.email})]})}),(0,a.jsx)("td",{className:"px-6 py-4",children:(0,a.jsxs)("code",{className:"text-xs bg-[#272729] px-2 py-1 rounded",children:[(null===(n=e.sessionId)||void 0===n?void 0:n.substring(0,16))||"N/A","..."]})}),(0,a.jsxs)("td",{className:"px-6 py-4 text-sm",children:[(0,a.jsx)("div",{className:"max-w-xs truncate",title:e.userAgent,children:e.userAgent||"Unknown"}),e.ip&&(0,a.jsx)("div",{className:"text-xs text-gray-500",children:e.ip})]}),(0,a.jsx)("td",{className:"px-6 py-4 text-sm",children:new Date(e.createdAt).toLocaleString()}),(0,a.jsx)("td",{className:"px-6 py-4 text-sm",children:e.lastSeenAt?new Date(e.lastSeenAt).toLocaleString():"Never"}),(0,a.jsx)("td",{className:"px-6 py-4",children:"active"===e.status?(0,a.jsxs)("span",{className:"flex items-center gap-2 text-green-500",children:[(0,a.jsx)(o.Z,{className:"w-4 h-4"}),"Active"]}):"locked"===e.status?(0,a.jsxs)("span",{className:"flex items-center gap-2 text-[#FF4500]",children:[(0,a.jsx)(m.Z,{className:"w-4 h-4"}),"Locked"]}):(0,a.jsxs)("span",{className:"flex items-center gap-2 text-red-500",children:[(0,a.jsx)(u.Z,{className:"w-4 h-4"}),e.status]})}),(0,a.jsx)("td",{className:"px-6 py-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:()=>O(e._id),className:"p-2 rounded-lg hover:bg-red-500/20 text-red-500",title:"Delete Session",children:(0,a.jsx)(f.Z,{className:"w-4 h-4"})}),e.userId&&(0,a.jsx)("button",{onClick:()=>P(e.userId._id,e.userId.email),className:"p-2 rounded-lg hover:bg-[#FF4500]/20 text-[#FF4500]",title:"Delete All User Sessions",children:(0,a.jsx)(j.Z,{className:"w-4 h-4"})})]})})]},e._id)})})]})}),(0,a.jsxs)("div",{className:"px-6 py-4 border-t flex items-center justify-between ".concat("dark"===e?"border-[#343536]":"border-gray-200"),children:[(0,a.jsxs)("button",{onClick:()=>C(e=>Math.max(1,e-1)),disabled:1===S,className:"flex items-center gap-2 px-4 py-2 rounded-lg disabled:opacity-50 btn-premium",children:[(0,a.jsx)(x.Z,{className:"w-4 h-4"}),"Previous"]}),(0,a.jsxs)("span",{className:"text-sm",children:["Page ",S," of ",A]}),(0,a.jsxs)("button",{onClick:()=>C(e=>Math.min(A,e+1)),disabled:S===A,className:"flex items-center gap-2 px-4 py-2 rounded-lg disabled:opacity-50 btn-premium",children:["Next",(0,a.jsx)(g.Z,{className:"w-4 h-4"})]})]})]})]})]})]})}}},function(e){e.O(0,[4968,1296,5412,2888,9774,179],function(){return e(e.s=52836)}),_N_E=e.O()}]);

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.