PageSourceSearch

https://app.epc-expert-pro.be/assets/AdminUsersPage-BZuUUc2I.js

js epc-expert-pro.be collected 2026-10-02 01:17:24 UTC 9,602 bytes, 1 lines download raw bytes

1import{j as e,L as T,y as F,r as h}from"./react-Cx2L18Fh.js";import{L as x,I,j as S,C as B,c as V,m as K,aC as M,aE as U,aD as q,B as H}from"./bootstrap-CIyzQir5.js";import{y as _,z as G,o as $,d as Z,A as Q}from"./proefaanvraagHulp-qUgMNIqa.js";import{S as v,a as w,b as z,c as y,d as g}from"./select-CH0bO1kn.js";import{S as A}from"./switch-Bdj5eUi7.js";import{T as W,a as Y,b as f,c,d as J,e as i}from"./table-C2O-AAAE.js";import{S as X}from"./AppShell-Prs3NYUi.js";import{G as j,O as L,T as O,P,a as C,v as ee,f as E,s as se,t as ae,S as p}from"./GebruikerRijOnderdelen-D4IAw-fT.js";import{T as te}from"./statusStyles-mMfIKtiH.js";import{am as ne,a8 as re,R as le}from"./icons-BaLUK3zn.js";import"./alert-dialog-1UMIt55X.js";import"./tabs-_8Mmd12G.js";import"./index-CCYSazvs.js";import"./preload-helper-Y7oeyQPX.js";import"./i18n-OxCMnHdS.js";import"./radix-CeuLCn0j.js";import"./charts-8q6USlL8.js";import"./supabase-DEwkL4E1.js";import"./forms-DjKlVCCn.js";import"./geometry-CwMX337e.js";import"./AdminGuard-DHO-ZaOc.js";import"./badge-COsRI6Bm.js";import"./en-US-BJqPz4zF.js";import"./nl-Dak1g7Dy.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};s.SENTRY_RELEASE={id:"1.2.0+1799dae"};var a=new s.Error().stack;a&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[a]="75a79757-318e-4a50-a413-55baf82dab6b",s._sentryDebugIdIdentifier="sentry-dbid-75a79757-318e-4a50-a413-55baf82dab6b")}catch{}})();const de=[{waarde:"alle",label:"Alle plannen"},{waarde:"trial",label:"Proef"},{waarde:"pro",label:"Pro"},{waarde:"enterprise",label:"Enterprise"}];function ie({filters:s,onChange:a}){return e.jsxs("div",{className:"flex flex-col gap-3 rounded-lg border bg-card p-4 md:flex-row md:flex-wrap md:items-end",children:[e.jsxs("div",{className:"min-w-0 flex-1 md:max-w-sm",children:[e.jsx(x,{htmlFor:"gebruikers-zoek",children:"Zoeken"}),e.jsx(I,{id:"gebruikers-zoek",placeholder:"Naam, e-mail, bedrijf of EP-code",value:s.zoek,onChange:t=>a({zoek:t.target.value}),className:"mt-1"})]}),e.jsxs("div",{className:"w-full md:w-40",children:[e.jsx(x,{htmlFor:"gebruikers-plan",children:"Plan"}),e.jsxs(v,{value:s.plan,onValueChange:t=>a({plan:t}),children:[e.jsx(w,{id:"gebruikers-plan",className:"mt-1",children:e.jsx(z,{})}),e.jsx(y,{children:de.map(t=>e.jsx(g,{value:t.waarde,children:t.label},t.waarde))})]})]}),e.jsxs("div",{className:"w-full md:w-40",children:[e.jsx(x,{htmlFor:"gebruikers-gezondheid",children:"Gezondheid"}),e.jsxs(v,{value:s.gezondheid,onValueChange:t=>a({gezondheid:t}),children:[e.jsx(w,{id:"gebruikers-gezondheid",className:"mt-1",children:e.jsx(z,{})}),e.jsxs(y,{children:[e.jsx(g,{value:"alle",children:"Alle"}),Object.entries(j).map(([t,r])=>e.jsx(g,{value:t,children:r},t))]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{id:"gebruikers-online",checked:s.alleenOnline,onCheckedChange:t=>a({alleenOnline:t})}),e.jsx(x,{htmlFor:"gebruikers-online",className:"cursor-pointer font-normal",children:"Online nu"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{id:"gebruikers-test",checked:s.toonTestEnAdmin,onCheckedChange:t=>a({toonTestEnAdmin:t})}),e.jsx(x,{htmlFor:"gebruikers-test",className:"cursor-pointer font-normal",children:"Test-accounts en admins tonen"})]})]})}const oe={nieuw:"info",actief:"success",dalend:"warning",slapend:"muted"};function ce({tellingen:s,actief:a,onKies:t}){return e.jsx("div",{className:"flex flex-wrap gap-2",children:Object.keys(j).map(r=>{const n=a===r;return e.jsxs("button",{type:"button",onClick:()=>t(n?"alle":r),className:S("rounded-full border px-3 py-1 text-sm font-medium transition-colors",te[oe[r]],n?"ring-2 ring-ring ring-offset-1 ring-offset-background":"opacity-80 hover:opacity-100"),children:[j[r]," · ",s[r]]},r)})})}const me=[{veld:"laatstActief",label:"Laatst actief"},{veld:"dossiers",label:"Dossiers"},{veld:"aangemaakt",label:"Aangemaakt"}];function xe({label:s,veld:a,actief:t,richting:r,onSorteer:n}){const d=r==="asc"?ne:re;return e.jsxs("button",{type:"button",onClick:()=>n(a),className:S("inline-flex items-center gap-1 font-medium",t&&"text-foreground"),children:[s,t&&e.jsx(d,{className:"size-3","aria-hidden":!0})]})}function ue({rijen:s,sorteerVeld:a,sorteerRichting:t,onSorteer:r}){return e.jsx("div",{className:"hidden overflow-x-auto rounded-lg border md:block",children:e.jsxs(W,{children:[e.jsx(Y,{children:e.jsxs(f,{children:[e.jsx(c,{className:"w-6"}),e.jsx(c,{children:"Naam"}),e.jsx(c,{children:"Bedrijf"}),e.jsx(c,{children:"EP-code"}),e.jsx(c,{children:"Plan"}),e.jsx(c,{children:"Gezondheid"}),me.map(n=>e.jsx(c,{children:e.jsx(xe,{label:n.label,veld:n.veld,actief:a===n.veld,richting:t,onSorteer:r})},n.veld)),e.jsx(c,{children:"A+-vragen (30d)"})]})}),e.jsxs(J,{children:[s.map(n=>e.jsxs(f,{children:[e.jsx(i,{children:e.jsx(L,{online:n.online})}),e.jsxs(i,{children:[e.jsx(T,{to:`/admin/gebruikers/${n.id}`,className:"font-medium hover:underline",children:n.naam??n.email}),e.jsx("div",{className:"text-xs text-muted-foreground",children:n.email}),e.jsx(O,{rij:n})]}),e.jsx(i,{className:"text-sm",children:n.bedrijf??"–"}),e.jsx(i,{className:"text-sm",children:n.ep_code??"–"}),e.jsx(i,{children:e.jsx(P,{rij:n})}),e.jsx(i,{children:e.jsx(C,{gezondheid:n.gezondheid})}),e.jsx(i,{className:"text-sm",children:_(n.laatst_actief)}),e.jsxs(i,{className:"text-sm",children:[n.dossiers_30d," / ",n.dossiers_totaal]}),e.jsx(i,{className:"text-sm",children:G(n.created_at)}),e.jsx(i,{className:"text-sm",children:n.ai_vragen_30d})]},n.id)),s.length===0&&e.jsx(f,{children:e.jsx(i,{colSpan:10,className:"py-8 text-center text-sm text-muted-foreground",children:"Geen gebruikers gevonden met deze filters."})})]})]})})}function he({rijen:s}){return s.length===0?e.jsx("p",{className:"rounded-lg border bg-card p-6 text-center text-sm text-muted-foreground md:hidden",children:"Geen gebruikers gevonden met deze filters."}):e.jsx("ul",{className:"space-y-3 md:hidden",children:s.map(a=>e.jsx("li",{children:e.jsx(B,{children:e.jsxs(V,{className:"space-y-2 pt-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(L,{online:a.online}),e.jsx(T,{to:`/admin/gebruikers/${a.id}`,className:"truncate font-medium hover:underline",children:a.naam??a.email})]}),e.jsx("p",{className:"truncate text-xs text-muted-foreground",children:a.email})]}),e.jsx(C,{gezondheid:a.gezondheid})]}),e.jsx(O,{rij:a}),e.jsxs("dl",{className:"grid grid-cols-2 gap-x-3 gap-y-1 text-sm",children:[e.jsx("dt",{className:"text-muted-foreground",children:"Bedrijf"}),e.jsx("dd",{className:"text-right",children:a.bedrijf??"–"}),e.jsx("dt",{className:"text-muted-foreground",children:"Plan"}),e.jsx("dd",{className:"text-right",children:e.jsx(P,{rij:a})}),e.jsx("dt",{className:"text-muted-foreground",children:"Laatst actief"}),e.jsx("dd",{className:"text-right",children:_(a.laatst_actief)}),e.jsx("dt",{className:"text-muted-foreground",children:"Dossiers (30d/totaal)"}),e.jsxs("dd",{className:"text-right",children:[a.dossiers_30d," / ",a.dossiers_totaal]}),e.jsx("dt",{className:"text-muted-foreground",children:"Aangemaakt"}),e.jsx("dd",{className:"text-right",children:G(a.created_at)})]})]})})},a.id))})}const ge=["laatstActief","dossiers","aangemaakt"];function fe(s){return{zoek:s.get("zoek")??p.zoek,plan:s.get("plan")??p.plan,gezondheid:s.get("gezondheid")??p.gezondheid,alleenOnline:s.get("online")==="1",toonTestEnAdmin:s.get("test")==="1"}}function pe(s){const a=s.get("sort"),t=ge.includes(a)?a:"laatstActief",r=s.get("richting")==="asc"?"asc":"desc";return{veld:t,richting:r}}function je(){return e.jsx("div",{className:"space-y-2 rounded-lg border p-4",children:Array.from({length:6},(s,a)=>e.jsx(X,{className:"h-10 w-full"},a))})}function be(){const[s,a]=F(),t=fe(s),{veld:r,richting:n}=pe(s),d=K({queryKey:["admin-gebruikers"],queryFn:()=>$.gebruikers()}),u=h.useMemo(()=>ee(d.data??[]),[d.data]),b=h.useMemo(()=>E(u,{...t,gezondheid:"alle"}),[u,t]),N=h.useMemo(()=>se(E(u,t),r,n),[u,t,r,n]),D=h.useMemo(()=>ae(b),[b]),k=m=>{const l=new URLSearchParams(s),o={...t,...m};o.zoek?l.set("zoek",o.zoek):l.delete("zoek"),o.plan!=="alle"?l.set("plan",o.plan):l.delete("plan"),o.gezondheid!=="alle"?l.set("gezondheid",o.gezondheid):l.delete("gezondheid"),o.alleenOnline?l.set("online","1"):l.delete("online"),o.toonTestEnAdmin?l.
1set("test","1"):l.delete("test"),a(l,{replace:!0})},R=m=>{const l=new URLSearchParams(s),o=m===r;l.set("sort",m),l.set("richting",o&&n==="desc"?"asc":"desc"),a(l,{replace:!0})};return e.jsxs(e.Fragment,{children:[e.jsx(Z,{titel:"Gebruikers",uitleg:d.data?`${d.data.length} accounts in totaal`:void 0}),d.isError&&e.jsxs(M,{variant:"destructive",children:[e.jsx(U,{children:"Gebruikers konden niet geladen worden"}),e.jsxs(q,{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:d.error instanceof Error?d.error.message:"Onbekende fout"}),e.jsxs(H,{variant:"outline",size:"sm",onClick:()=>d.refetch(),children:[e.jsx(le,{className:"size-4","aria-hidden":!0})," Opnieuw proberen"]})]})]}),d.isLoading&&e.jsx(je,{}),!d.isLoading&&!d.isError&&e.jsxs("div",{className:"space-y-4",children:[e.jsx(ce,{tellingen:D,actief:t.gezondheid,onKies:m=>k({gezondheid:m})}),e.jsx(ie,{filters:t,onChange:k}),e.jsx(ue,{rijen:N,sorteerVeld:r,sorteerRichting:n,onSorteer:R}),e.jsx(he,{rijen:N})]})]})}function Ue(){return e.jsx(Q,{breed:!0,children:e.jsx(be,{})})}export{Ue 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.