diff --git a/src/components/tickets/ticket-queue-summary.tsx b/src/components/tickets/ticket-queue-summary.tsx index a97a5b1..f584ae7 100644 --- a/src/components/tickets/ticket-queue-summary.tsx +++ b/src/components/tickets/ticket-queue-summary.tsx @@ -14,6 +14,19 @@ interface TicketQueueSummaryProps { layout?: "default" | "compact" } +function resolveSlaTone(percent: number) { + if (percent < 25) { + return { indicator: "bg-[#00e8ff]", text: "text-sky-600" } + } + if (percent < 50) { + return { indicator: "bg-emerald-400", text: "text-emerald-600" } + } + if (percent < 75) { + return { indicator: "bg-amber-400", text: "text-amber-600" } + } + return { indicator: "bg-rose-500", text: "text-rose-600" } +} + export function TicketQueueSummaryCards({ queues, layout = "default" }: TicketQueueSummaryProps) { const { convexUserId, isStaff } = useAuth() const enabled = Boolean(isStaff && convexUserId) @@ -52,6 +65,7 @@ export function TicketQueueSummaryCards({ queues, layout = "default" }: TicketQu {data.map((queue, index) => { const totalOpen = queue.pending + queue.inProgress + queue.paused const breachPercent = totalOpen === 0 ? 0 : Math.round((queue.breached / totalOpen) * 100) + const slaTone = resolveSlaTone(breachPercent) return (
- - + + {breachPercent}% dos chamados da fila estão fora do SLA