1import{r as g,a as I,M as f,j as e,B as i,z as Q,X as m}from"./main-0mA9R0ha.js";import{u as L,c as v,Q as N}from"./queueActions-D-LN2qWh.js";import{C as x,a as u,b as h,d as j}from"./card-CPiRAOUA.js";import{D as y,a as C,b as w,c as T,f as D,d as k}from"./dialog-Vjf52_l7.js";import{S as p}from"./spinner-DrCkCm73.js";import{T as P,a as _,b as q,c as H}from"./tabs-DbPupjom.js";import{A as M}from"./AdminLayout-BYbG5jag.js";import{T as A}from"./trash-2-BXd8faTH.js";import{C as O}from"./clock-qvktX5hd.js";import{c as $}from"./createLucideIcon-4vlm1tE4.js";import{C as R}from"./circle-alert-DWlw_4Go.js";import{T as W}from"./triangle-alert-CG4glAKf.js";import"./index-DJEMsTTh.js";import"./index-DkQxBBIZ.js";import"./index-C5i3-hSU.js";import"./index-BHj7PaJO.js";import"./tslib.es6-Bdd1sz-K.js";import"./x-DMa84inB.js";import"./loader-circle-MNFmGwwL.js";import"./index-CpgbVTNg.js";import"./index-Bzj8x_lz.js";import"./index-C4uhXlwe.js";import"./breadcrumb-CTH0CZLh.js";import"./chevron-right-BOGpebV2.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new s.Error().stack;t&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[t]="fca4ffb8-7a58-4125-96a0-65a16279ac2e",s._sentryDebugIdIdentifier="sentry-dbid-fca4ffb8-7a58-4125-96a0-65a16279ac2e")}catch{}})();const B=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],K=$("activity",B),U=[{value:"all",label:"All"},{value:"encoding",label:"Encoding"},{value:"thumbnails",label:"Thumbnails"},{value:"transcription",label:"Transcription"},{value:"cleanup",label:"Cleanup"},{value:"events",label:"Events"}],V=({queue:s})=>{const t=s.counts.failed>0,r=s.counts.active>0;return e.jsx(Q,{to:"/admin/queues/$queueName",params:{queueName:s.name},className:"block",children:e.jsxs(x,{className:`hover:border-primary/50 transition-colors cursor-pointer ${t?"border-destructive/50":""}`,children:[e.jsxs(u,{className:"pb-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(h,{className:"text-base",children:s.displayName}),s.isPaused&&e.jsx("span",{className:"text-xs bg-muted px-2 py-1 rounded",children:"Paused"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s.description})]}),e.jsx(j,{children:e.jsxs("div",{className:"grid grid-cols-5 gap-2 text-center",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-bold text-yellow-500",children:s.counts.waiting}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Waiting"})]}),e.jsxs("div",{children:[e.jsx("div",{className:`text-lg font-bold ${r?"text-blue-500":"text-muted-foreground"}`,children:s.counts.active}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Active"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-bold text-green-500",children:s.counts.completed}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Done"})]}),e.jsxs("div",{children:[e.jsx("div",{className:`text-lg font-bold ${t?"text-red-500":"text-muted-foreground"}`,children:s.counts.failed}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Failed"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-bold text-gray-500",children:s.counts.delayed}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Delayed"})]})]})})]})})},z=()=>{const[s,t]=g.useState("all"),[r,n]=g.useState(!1),[E,d]=g.useState(!1),b=I(),{data:a,isLoading:F,isError:S}=L(s==="all"?void 0:s),o=f({mutationFn:()=>v({states:["completed","failed"]}),onSuccess:l=>{m.success(`Cleared ${l.totalCleaned} jobs from all queues`),b.invalidateQueries({queryKey:[N]}),n(!1)},onError:()=>{m.error("Failed to clear queue history")}}),c=f({mutationFn:()=>v({states:["waiting","delayed","completed","failed"]}),onSuccess:l=>{m.success(`Cleared ${l.totalCleaned} jobs from all queues`),b.invalidateQueries({queryKey:[N]}),d(!1)},onError:()=>{m.error("Failed to clear queues")}});return e.jsx(M,{links:[e.jsx(Q,{to:"/admin/queues",children:"Queues"},"queues")],children:e.jsxs("div",{className:"flex flex-col flex-1",children:[e.jsxs("div",{className:"container mx-auto p-4",children:[e.jsxs("div",{className:"flex items-start justify-between mb-8",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-semibold mb-2",children:"BullMQ Queues"}),e.jsx("p",{className:"text-muted-foreground",children:"Monitor and manage background job queues"})]}),e.jsxs(i,{variant:"outline",onClick:()=>n(!0),className:"flex items-center gap-2",children:[e.jsx(A,{className:"h-4 w-4"}),"Clear History"]})]}),a&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-8",children:[e.jsxs(x,{children:[e.jsx(u,{className:"pb-2",children:e.jsxs(h,{className:"text-sm flex items-center gap-2",children:[e.jsx(O,{className:"h-4 w-4 text-yellow-500"}),"Waiting"]})}),e.jsx(j,{children:e.jsx("div",{className:"text-3xl font-bold",children:a.totals.waiting})})]}),e.jsxs(x,{children:[e.jsx(u,{className:"pb-2",children:e.jsxs(h,{className:"text-sm flex items-center gap-2",children:[e.jsx(K,{className:"h-4 w-4 text-blue-500"}),"Active"]})}),e.jsx(j,{children:e.jsx("div",{className:"text-3xl font-bold",children:a.totals.active})})]}),e.jsxs(x,{children:[e.jsx(u,{className:"pb-2",children:e.jsxs(h,{className:"text-sm flex items-center gap-2",children:[e.jsx(R,{className:"h-4 w-4 text-red-500"}),"Failed"]})}),e.jsx(j,{children:e.jsx("div",{className:"text-3xl font-bold",children:a.totals.failed})})]})]}),e.jsxs(P,{value:s,onValueChange:l=>t(l),children:[e.jsx(_,{className:"mb-4 flex-wrap h-auto gap-1",children:U.map(l=>e.jsx(q,{value:l.value,children:l.label},l.value))}),e.jsx(H,{value:s,className:"mt-0",children:F?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(p,{className:"h-8 w-8"})}):S?e.jsx("div",{className:"text-center py-12 text-destructive",children:"Failed to load queue data"}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:a?.queues.map(l
1=>e.jsx(V,{queue:l},l.name))})})]}),e.jsxs("div",{className:"mt-12 border border-red-500/50 rounded-lg p-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-red-500 mb-2",children:"Danger Zone"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Destructive actions that cannot be undone. Use with extreme caution."}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-red-500/10 rounded-md",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Clear All Queues"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Remove all waiting, delayed, completed, and failed jobs from every queue."})]}),e.jsxs(i,{variant:"destructive",className:"bg-red-600 hover:bg-red-700",onClick:()=>d(!0),children:[e.jsx(A,{className:"h-4 w-4 mr-2"}),"Clear All Queues"]})]})]})]}),e.jsx(y,{open:r,onOpenChange:n,children:e.jsxs(C,{children:[e.jsxs(w,{children:[e.jsx(T,{children:"Clear Queue History"}),e.jsx(D,{children:"This will permanently remove all completed and failed jobs from all queues. This action cannot be undone."})]}),e.jsxs("div",{className:"py-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"The following job types will be removed:"}),e.jsxs("ul",{className:"list-disc list-inside mt-2 text-sm",children:[e.jsxs("li",{children:[e.jsx("span",{className:"text-green-600 dark:text-green-400",children:"Completed"})," ","jobs - ",a?.totals.completed??0," total"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-red-600 dark:text-red-400",children:"Failed"})," ","jobs - ",a?.totals.failed??0," total"]})]})]}),e.jsxs(k,{children:[e.jsx(i,{variant:"outline",onClick:()=>n(!1),disabled:o.isPending,children:"Cancel"}),e.jsx(i,{variant:"destructive",onClick:()=>o.mutate(),disabled:o.isPending,children:o.isPending?e.jsxs(e.Fragment,{children:[e.jsx(p,{className:"h-4 w-4 mr-2"}),"Clearing..."]}):"Clear All History"})]})]})}),e.jsx(y,{open:E,onOpenChange:d,children:e.jsxs(C,{children:[e.jsxs(w,{children:[e.jsxs(T,{className:"text-red-500 flex items-center gap-2",children:[e.jsx(W,{className:"h-5 w-5"}),"Clear All Queues"]}),e.jsx(D,{children:"This will permanently remove ALL jobs from every queue. This is a destructive action that cannot be undone."})]}),e.jsx("div",{className:"bg-yellow-500/10 border border-yellow-500/50 p-3 rounded-md",children:e.jsxs("p",{className:"text-sm",children:[e.jsx("strong",{children:"Recommended:"}),' Consider using the "Clear History" button instead, which only removes completed and failed jobs while preserving pending work.']})}),e.jsxs("div",{className:"py-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"The following jobs will be removed:"}),e.jsxs("ul",{className:"list-disc list-inside text-sm space-y-1",children:[e.jsxs("li",{children:[e.jsx("span",{className:"text-yellow-600 dark:text-yellow-400",children:"Waiting"})," ","jobs - ",a?.totals.waiting??0," total"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Delayed"})," ","jobs - ",a?.totals.delayed??0," total"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-green-600 dark:text-green-400",children:"Completed"})," ","jobs - ",a?.totals.completed??0," total"]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-red-600 dark:text-red-400",children:"Failed"})," ","jobs - ",a?.totals.failed??0," total"]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-3",children:[e.jsx("span",{className:"text-blue-600 dark:text-blue-400",children:"Active"})," ","jobs (",a?.totals.active??0,") will NOT be affected."]})]}),e.jsxs(k,{children:[e.jsx(i,{variant:"outline",onClick:()=>d(!1),disabled:c.isPending,children:"Cancel"}),e.jsx(i,{variant:"destructive",className:"bg-red-600 hover:bg-red-700",onClick:()=>c.mutate(),disabled:c.isPending,children:c.isPending?e.jsxs(e.Fragment,{children:[e.jsx(p,{className:"h-4 w-4 mr-2"}),"Clearing..."]}):"Clear All Queues"})]})]})})]})})},fe=z;export{fe 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.