"use client" import { useQuery } from "convex/react" // @ts-expect-error Convex runtime API lacks TypeScript declarations import { api } from "@/convex/_generated/api" import { DEFAULT_TENANT_ID } from "@/lib/constants" import type { TicketQueueSummary } from "@/lib/schemas/ticket" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Progress } from "@/components/ui/progress" import { useAuth } from "@/lib/auth-client" import type { Id } from "@/convex/_generated/dataModel" interface TicketQueueSummaryProps { queues?: TicketQueueSummary[] } export function TicketQueueSummaryCards({ queues }: TicketQueueSummaryProps) { const { convexUserId } = useAuth() const queueArgs = convexUserId ? { tenantId: DEFAULT_TENANT_ID, viewerId: convexUserId as Id<"users"> } : "skip" const fromServer = useQuery(convexUserId ? api.queues.summary : "skip", queueArgs) const data: TicketQueueSummary[] = (queues ?? (fromServer as TicketQueueSummary[] | undefined) ?? []) if (!queues && fromServer === undefined) { return (
{Array.from({ length: 3 }).map((_, index) => (
))}
) } return (
{data.map((queue) => { const total = queue.pending + queue.waiting const breachPercent = total === 0 ? 0 : Math.round((queue.breached / total) * 100) return ( Fila {queue.name}
Pendentes {queue.pending}
Aguardando resposta {queue.waiting}
Violados {queue.breached}
{breachPercent}% com SLA violado nesta fila
) })}
) }