PageSourceSearch

https://www.claimtagg.com/assets/users-DIsquM19.js

js claimtagg.com collected 2026-09-24 14:41:46 UTC 5,850 bytes, 1 lines download raw bytes

1import{c as C,B as N,M as b,C as k,e as j,r as o,t as v,j as e}from"./index-BSqUMMSC.js";import{B as m}from"./button-gbDF9O4I.js";import{B as h}from"./badge-CNgQZKny.js";import{C as S}from"./card-BKCQVRO4.js";import{u as I}from"./admin-i18n-BDmX9LEm.js";import{C as U}from"./check-CNfEfj1f.js";import{S as B}from"./shield-DJVS6T3N.js";import{T as M}from"./trash-2-DWSONHoy.js";import"./utils-DS3kb1CM.js";import"./globe-C7Y-pv4i.js";const T=[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]],z=C("shield-off",T);const E=[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["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"}]],P=C("user-check",E),q=N({method:"GET"}).middleware([b]).handler(k("392804649a7ada2fdee0597dc35f31b4c801d9f28e2d2a70c1a0ca8d817cfe5f")),D=N({method:"POST"}).middleware([b]).handler(k("1e217167414b4924fd876e4f13f21b9d69fbcae54912212d8878ffdec680c99c")),F=N({method:"POST"}).middleware([b]).handler(k("6825df580faeca88f7d9ef3e1218c16ef32fd7ee1ff3bd0b96717bcccd44ccfb"));function X(){const n=j(q),t=j(D),x=j(F),{t:a}=I(),[p,g]=o.useState([]),[f,d]=o.useState(!0),[c,i]=o.useState(null),l=o.useCallback(async()=>{d(!0);try{const s=await n();g(s.users)}catch(s){v.error(s?.message??a("users.toast.loadErr"))}finally{d(!1)}},[n,a]);o.useEffect(()=>{l()},[l]);const r=async(s,_,A)=>{i(_);try{await s(),v.success(A),await l()}catch(R){v.error(R?.message??a("common.error"))}finally{i(null)}},u=p.filter(s=>s.roles.length===0),y=p.filter(s=>s.roles.length>0);return e.jsxs("div",{className:"p-4 md:p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl md:text-2xl font-bold",children:a("users.title")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a("users.subtitle")})]}),e.jsxs("section",{className:"space-y-3",children:[e.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[a("users.pending"),u.length>0&&e.jsx(h,{variant:"destructive",children:u.length})]}),f?e.jsx("p",{className:"text-sm text-muted-foreground",children:a("common.loading")}):u.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:a("users.noPending")}):e.jsx("div",{className:"space-y-2",children:u.map(s=>e.jsx(w,{u:s,busy:c===s.id,onApprove:()=>r(()=>t({data:{userId:s.id,role:"user",grant:!0}}),s.id,a("users.toast.approved")),onMakeAdmin:()=>r(()=>t({data:{userId:s.id,role:"admin",grant:!0}}),s.id,a("users.toast.adminGranted")),onRemoveAdmin:()=>r(()=>t({data:{userId:s.id,role:"admin",grant:!1}}),s.id,a("users.toast.adminRevoked")),onRevoke:()=>r(()=>t({data:{userId:s.id,role:"user",grant:!1}}),s.id,a("users.toast.revoked")),onDelete:()=>r(()=>x({data:{userId:s.id}}),s.id,a("users.toast.deleted"))},s.id))})]}),e.jsxs("section",{className:"space-y-3",children:[e.jsx("h2",{className:"text-lg font-semibold",children:a("users.approved")}),!f&&y.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:a("users.noApproved")}):e.jsx("div",{className:"space-y-2",children:y.map(s=>e.jsx(w,{u:s,busy:c===s.id,onApprove:()=>r(()=>t({data:{userId:s.id,role:"user",grant:!0}}),s.id,a("users.toast.approved")),onMakeAdmin:()=>r(()=>t({data:{userId:s.id,role:"admin",grant:!0}}),s.id,a("users.toast.adminGranted")),onRemoveAdmin:()=>r(()=>t({data:{userId:s.id,role:"admin",grant:!1}}),s.id,a("users.toast.adminRevoked")),onRevoke:()=>r(()=>t({data:{userId:s.id,role:"user",grant:!1}}),s.id,a("users.toast.revoked")),onDelete:()=>r(()=>x({data:{userId:s.id}}),s.id,a("users.toast.deleted"))},s.id))})]})]})}function w({u:n,busy:t,onApprove:x,onMakeAdmin:a,onRemoveAdmin:p,onRevoke:g,onDelete:f}){const{t:d,fmtDate:c}=I(),i=n.roles.includes("admin"),l=n.roles.includes("user"),r=n.roles.length===0;return e.jsx(S,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"font-medium truncate",children:n.email}),i&&e.jsx(h,{children:d("users.badge.admin")}),l&&!i&&e.jsx(h,{variant:"secondary",children:d("users.badge.approved")}),r&&e.jsx(h,{variant:"destructive",children:d("users.badge.pending")}),!n.email_confirmed_at&&e.jsx(h,{variant:"outline",children:d("users.badge.emailUnconfirmed")})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[d("users.registered")," ",c(n.created_at),n.last_sign_in_at&&e.jsxs(e.Fragment,{children:[" · ",d("users.lastLogin")," ",c(n.last_sign_in_at)]})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[r&&e.jsxs(m,{size:"sm",onClick:x,disabled:t,children:[e.jsx(U,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline ml-1",children:d("users.btn.approve")})]}),i?e.jsxs(m,{size:"sm",variant:"outline",onClick:p,disabled:t,children:[e.jsx(z,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline ml-1",children:d("users.btn.removeAdmin")})]}):e.jsxs(m,{size:"sm",variant:"outline",onClick:a,disabled:t,children:[e.jsx(B,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline ml-1",children:d("users.btn.admin")})]}),l&&e.jsxs(m,{size:"sm",variant:"outline",onClick:g,disabled:t,children:[e.jsx(P,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline ml-1",children:d("users.btn.revoke")})]}),e.jsxs(m,{size:"sm",variant:"destructive",onClick:f,disabled:t,children:[e.jsx(M,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline ml-1",children:d("users.btn.delete")})]})]})]})})}export{X 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.