diff --git a/admin/frontend/src/components/QueueGrid.tsx b/admin/frontend/src/components/QueueGrid.tsx new file mode 100644 index 0000000..d36b3e9 --- /dev/null +++ b/admin/frontend/src/components/QueueGrid.tsx @@ -0,0 +1,123 @@ +import React from 'react'; +import type { QueueStats } from '../types'; + +export interface QueueGridProps { + queues: QueueStats[]; + onQueueClick?: (queue: QueueStats) => void; + onPause?: (queueName: string) => void; + onResume?: (queueName: string) => void; + className?: string; +} + +/** + * Grid display of queue cards with stats and actions. + */ +export function QueueGrid({ + queues, + onQueueClick, + onPause, + onResume, + className = '', +}: QueueGridProps) { + if (queues.length === 0) { + return
Loading queues...
+{error.message}
+Monitor and manage background job queues
+No queue data available
+Monitor and manage background job queues
+No queue selected
++ + {queueStats.paused ? 'Paused' : 'Active'} + + {' · '} + {queueStats.waiting + queueStats.active + queueStats.delayed} pending jobs +
+ )} +