'use client'; import { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { Card, CardContent } from '@horux/shared-ui'; import { Header } from '@/components/layouts/header'; import { DespachoSubnav } from '@/components/despachos/despacho-subnav'; import { PeriodoSelector } from '@/components/periodo-selector'; import { apiClient } from '@/lib/api/client'; import { useAuthStore } from '@/stores/auth-store'; import { usePeriodoStore, añoMesFromFechaInicio } from '@/stores/periodo-store'; import { User, AlertTriangle, Loader2, ChevronDown, ChevronRight, CheckCircle2 } from 'lucide-react'; interface Miembro { userId: string; nombre: string; email: string; rol: 'supervisor' | 'auxiliar'; contribuyentes: number; obligacionesAtrasadas: number; tareasAtrasadas: number; totalPendientes: number; totalPeriodo: number; completadasPeriodo: number; avancePct: number | null; } interface SupervisorConAuxiliares extends Miembro { auxiliares: Miembro[]; } interface EquipoStatsResponse { supervisores: SupervisorConAuxiliares[]; huerfanos: Miembro[]; } const ROLES_SUPERVISORY = new Set(['owner', 'cfo', 'supervisor']); function AvanceBar({ pct }: { pct: number | null }) { if (pct === null) return Sin datos; const color = pct >= 80 ? 'bg-success' : pct >= 50 ? 'bg-amber-500' : 'bg-destructive'; const text = pct >= 80 ? 'text-success' : pct >= 50 ? 'text-amber-600' : 'text-destructive'; return (
| Miembro | Contribuyentes | Avance del periodo | Atrasos |
|---|
| Auxiliar | Contribuyentes | Avance del periodo | Atrasos |
|---|---|---|---|
|
{aux.nombre}
{aux.email}
|
{aux.contribuyentes} |