feat: surface ticket work metrics and refresh list layout

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
esdrasrenan 2025-10-04 22:22:02 -03:00
parent 744d5933d4
commit 55511f3a0e
20 changed files with 1102 additions and 357 deletions

View file

@ -1,20 +1,15 @@
import { type TicketPriority } from "@/lib/schemas/ticket"
import { Badge } from "@/components/ui/badge"
import { cn } from "@/lib/utils"
import { PriorityIcon, priorityStyles } from "@/components/tickets/priority-select"
const priorityStyles: Record<TicketPriority, { label: string; className: string }> = {
LOW: { label: "Baixa", className: "border border-slate-200 bg-slate-100 text-slate-700" },
MEDIUM: { label: "Média", className: "border border-slate-200 bg-[#dff1fb] text-[#0a4760]" },
HIGH: { label: "Alta", className: "border border-slate-200 bg-[#fde8d1] text-[#7d3b05]" },
URGENT: { label: "Urgente", className: "border border-slate-200 bg-[#fbd9dd] text-[#8b0f1c]" },
}
const baseClass = "inline-flex items-center rounded-full px-3 py-0.5 text-xs font-semibold"
const baseClass = "inline-flex items-center gap-1.5 rounded-full px-3 py-0.5 text-xs font-semibold"
export function TicketPriorityPill({ priority }: { priority: TicketPriority }) {
const styles = priorityStyles[priority]
return (
<Badge className={cn(baseClass, styles?.className)}>
<Badge className={cn(baseClass, styles?.badgeClass)}>
<PriorityIcon value={priority} />
{styles?.label ?? priority}
</Badge>
)