DashboardView: mapeo de prioridad numérica (1/2/3) de KAPPA a etiquetas legibles

This commit is contained in:
2026-05-29 02:54:21 -05:00
parent 2f8d79a624
commit dc210ebd36
+19 -12
View File
@@ -106,22 +106,29 @@ function assignedName(hu: { id?: number; _assignedUserId?: number | null; _assig
} }
// ─── Priority helpers ───────────────────────────────── // ─── Priority helpers ─────────────────────────────────
const PRIORITY_MAP: Record<string, { label: string; variant: string }> = {
'1': { label: 'Alta', variant: 'destructive' },
'2': { label: 'Media', variant: 'default' },
'3': { label: 'Baja', variant: 'secondary' },
'alta': { label: 'Alta', variant: 'destructive' },
'high': { label: 'Alta', variant: 'destructive' },
'critical': { label: 'Crítica', variant: 'destructive' },
'urgente': { label: 'Urgente', variant: 'destructive' },
'media': { label: 'Media', variant: 'default' },
'medium': { label: 'Media', variant: 'default' },
'normal': { label: 'Media', variant: 'default' },
'baja': { label: 'Baja', variant: 'secondary' },
'low': { label: 'Baja', variant: 'secondary' },
}
function priorityVariant(p: unknown) { function priorityVariant(p: unknown) {
const s = String(p ?? '').toLowerCase() const s = String(p ?? '').toLowerCase().trim()
if (['alta', 'high', 'critical', 'urgente'].includes(s)) return 'destructive' return (PRIORITY_MAP[s]?.variant ?? 'outline') as 'default' | 'destructive' | 'outline' | 'secondary'
if (['media', 'medium', 'normal'].includes(s)) return 'default'
if (['baja', 'low'].includes(s)) return 'secondary'
return 'outline'
} }
function priorityLabel(p: unknown) { function priorityLabel(p: unknown) {
const s = String(p ?? '').toLowerCase() const s = String(p ?? '').toLowerCase().trim()
if (['alta', 'high'].includes(s)) return 'Alta' return PRIORITY_MAP[s]?.label ?? String(p ?? '—')
if (['media', 'medium', 'normal'].includes(s)) return 'Media'
if (['baja', 'low'].includes(s)) return 'Baja'
if (s === 'critical') return 'Crítica'
if (s === 'urgente') return 'Urgente'
return String(p ?? '—')
} }
// ─── Filters ───────────────────────────────────────── // ─── Filters ─────────────────────────────────────────