PageSourceSearch

https://swiftlyads.ai/_next/static/chunks/pages/admin/users-16562c8e7a91ea52.js

js swiftlyads.ai collected 2026-10-05 12:55:17 UTC 8,692 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4840,5101,8638],{7577:(e,s,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/users",function(){return r(85465)}])},18465:(e,s,r)=>{"use strict";r.d(s,{A:()=>a});let a=(0,r(11713).A)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},28638:(e,s,r)=>{"use strict";r.d(s,{BT:()=>c,Wu:()=>o,ZB:()=>d,Zp:()=>i,aR:()=>l,wL:()=>m});var a=r(37876),t=r(14232),n=r(48647);let i=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...t})});i.displayName="Card";let l=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...t})});l.displayName="CardHeader";let d=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("h3",{ref:s,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",r),...t})});d.displayName="CardTitle";let c=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("p",{ref:s,className:(0,n.cn)("text-sm text-muted-foreground",r),...t})});c.displayName="CardDescription";let o=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("p-6 pt-0",r),...t})});o.displayName="CardContent";let m=t.forwardRef((e,s)=>{let{className:r,...t}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex items-center p-6 pt-0",r),...t})});m.displayName="CardFooter"},45101:(e,s,r)=>{"use strict";r.d(s,{E:()=>l});var a=r(37876);r(14232);var t=r(69518),n=r(48647);let i=(0,t.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:s,variant:r,...t}=e;return(0,a.jsx)("div",{className:(0,n.cn)(i({variant:r}),s),...t})}},85465:(e,s,r)=>{"use strict";r.r(s),r.d(s,{default:()=>C});var a=r(37876),t=r(14232),n=r(95776),i=r(28638),l=r(69292),d=r(3483),c=r(6960),o=r(89142),m=r(29252),x=r(7446),u=r(21020),h=r(12377),p=r(79516),j=r(71354);let f=(0,r(11713).A)("user-check",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["polyline",{points:"16 11 18 13 22 9",key:"1pwet4"}]]);var g=r(33274),N=r(77932),v=r(14585),y=r(37607),w=r(74219),A=r(45101),b=r(59688),k=r(89099);let C=()=>{let[e,s]=(0,t.useState)(""),[r,C]=(0,t.useState)([]),[S,_]=(0,t.useState)({total:0,page:1,pageSize:10,totalPages:0}),[E,R]=(0,t.useState)(!0),[P,U]=(0,t.useState)(null),z=(0,k.useRouter)();(0,t.useEffect)(()=>{(async()=>{R(!0),U(null);try{let s=new URLSearchParams;s.append("page",S.page.toString()),s.append("pageSize",S.pageSize.toString()),e&&s.append("search",e);let r=await fetch("/api/admin/users?".concat(s.toString()));if(!r.ok)throw Error("Error fetching users: ".concat(r.statusText));let a=await r.json();C(a.users),_(a.pagination)}catch(e){U(e instanceof Error?e:Error("An error occurred")),b.oR.error("Failed to fetch users")}finally{R(!1)}})()},[S.page,S.pageSize,e]);let T=e=>{_(s=>({...s,page:e}))},M=async(e,s)=>{try{let r=await fetch("/api/admin/users",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,isAdmin:!s})});if(!r.ok)throw Error("Error updating user: ".concat(r.statusText));C(r=>r.map(r=>r.id===e?{...r,isAdmin:!s}:r)),b.oR.success("Admin privileges ".concat(s?"revoked":"granted"))}catch(e){b.oR.error("Failed to update user"),console.error(e)}},B=e=>e?e.split(" ").map(e=>e.charAt(0)).join("").toUpperCase().substring(0,2):"?";return(0,a.jsx)(n.U,{children:(0,a.jsxs)("div",{className:"p-6",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,a.jsx)("h1",{className:"text-3xl font-bold",children:"Users"}),(0,a.jsxs)(c.$,{children:[(0,a.jsx)(g.A,{className:"mr-2 h-4 w-4"}),"Add User"]})]}),(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)(i.aR,{children:[(0,a.jsx)(i.ZB,{children:"All Users"}),(0,a.jsx)(i.BT,{children:"Manage user accounts and admin privileges."})]}),(0,a.jsxs)(i.Wu,{children:[(0,a.jsxs)("div",{className:"flex items-center mb-4",children:[(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(p.A,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),(0,a.jsx)(N.p,{placeholder:"Search users by name or email...",className:"pl-8",value:e,onCh
1ange:e=>s(e.target.value)})]}),(0,a.jsxs)(c.$,{variant:"outline",className:"ml-2",children:[(0,a.jsx)(m.A,{className:"mr-2 h-4 w-4"}),"Filter"]})]}),E?(0,a.jsx)("div",{className:"flex justify-center items-center py-8",children:(0,a.jsx)(x.A,{className:"h-8 w-8 animate-spin text-primary"})}):P?(0,a.jsxs)("div",{className:"text-center py-8 text-destructive",children:[(0,a.jsx)("p",{children:"Error loading users"}),(0,a.jsx)("p",{className:"text-sm",children:P.message})]}):0===r.length?(0,a.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:e?"No users match your search":"No users found"}):(0,a.jsx)("div",{className:"border rounded-md",children:(0,a.jsxs)(l.XI,{children:[(0,a.jsx)(l.A0,{children:(0,a.jsxs)(l.Hj,{children:[(0,a.jsx)(l.nd,{children:"User"}),(0,a.jsx)(l.nd,{children:"Email"}),(0,a.jsx)(l.nd,{children:"Admin"}),(0,a.jsx)(l.nd,{children:"Status"}),(0,a.jsx)(l.nd,{children:"Workspaces"}),(0,a.jsx)(l.nd,{children:"Created"}),(0,a.jsx)(l.nd,{className:"w-[80px]",children:"Actions"})]})}),(0,a.jsx)(l.BF,{children:r.map(e=>(0,a.jsxs)(l.Hj,{className:"cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>z.push("/admin/users/".concat(e.id)),children:[(0,a.jsx)(l.nA,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)(w.eu,{children:[(0,a.jsx)(w.BK,{src:e.image||void 0}),(0,a.jsx)(w.q5,{children:B(e.name)})]}),(0,a.jsx)("span",{className:"font-medium",children:e.name||"Unnamed User"})]})}),(0,a.jsx)(l.nA,{children:e.email||"No email"}),(0,a.jsx)(l.nA,{onClick:e=>e.stopPropagation(),children:(0,a.jsx)(v.d,{checked:e.isAdmin,onCheckedChange:()=>M(e.id,e.isAdmin)})}),(0,a.jsx)(l.nA,{children:(0,a.jsx)(A.E,{variant:e.emailVerified?"default":"outline",children:e.emailVerified?"Verified":"Unverified"})}),(0,a.jsx)(l.nA,{children:e._count.ownedWorkspaces+e._count.workspaceMemberships}),(0,a.jsx)(l.nA,{children:(0,y.G)(new Date(e.createdAt),"MMM d, yyyy")}),(0,a.jsx)(l.nA,{onClick:e=>e.stopPropagation(),children:(0,a.jsxs)(d.rI,{children:[(0,a.jsx)(d.ty,{asChild:!0,children:(0,a.jsx)(c.$,{variant:"ghost",className:"h-8 w-8 p-0",children:(0,a.jsx)(u.A,{className:"h-4 w-4"})})}),(0,a.jsxs)(d.SQ,{align:"end",children:[(0,a.jsx)(d.lp,{children:"Actions"}),(0,a.jsx)(d.mB,{}),(0,a.jsxs)(d._2,{className:"cursor-pointer",onClick:()=>z.push("/admin/users/".concat(e.id)),children:[(0,a.jsx)(o.A,{className:"mr-2 h-4 w-4"}),"View Details"]}),(0,a.jsxs)(d._2,{className:"cursor-pointer",children:[(0,a.jsx)(h.A,{className:"mr-2 h-4 w-4"}),"Edit"]}),(0,a.jsxs)(d._2,{className:"cursor-pointer",onClick:()=>M(e.id,e.isAdmin),children:[(0,a.jsx)(f,{className:"mr-2 h-4 w-4"}),e.isAdmin?"Revoke Admin":"Make Admin"]}),(0,a.jsxs)(d._2,{className:"cursor-pointer text-destructive",children:[(0,a.jsx)(j.A,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]})})]},e.id))})]})})]}),(0,a.jsxs)(i.wL,{className:"flex justify-between",children:[(0,a.jsxs)("div",{className:"text-sm text-muted-foreground",children:["Showing ",Math.min(S.pageSize,r.length)," of"," ",S.total," users"]}),S.totalPages>1&&(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>T(S.page-1),disabled:1===S.page,children:"Previous"}),Array.from({length:S.totalPages},(e,s)=>s+1).filter(e=>{let s=S.page;return 1===e||e===S.totalPages||e>=s-1&&e<=s+1}).map((e,s,r)=>(0,a.jsxs)(t.Fragment,{children:[s>0&&r[s-1]!==e-1&&(0,a.jsx)(c.$,{variant:"outline",size:"sm",disabled:!0,children:"..."}),(0,a.jsx)(c.$,{variant:S.page===e?"default":"outline",size:"sm",onClick:()=>T(e),children:e})]},e)),(0,a.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>T(S.page+1),disabled:S.page===S.totalPages,children:"Next"})]})]})]})]})})}}},e=>{var s=s=>e(e.s=s);e.O(0,[6593,3675,4223,8191,4173,636,8792],()=>s(7577)),_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.