'use client' import { useEffect, useState } from 'react' import { isSuppressed, type SaturacionData } from '@/lib/dashboard-types' import { queries } from '@/lib/dashboard-queries' import type { DashboardFilters } from '@/lib/dashboard-types' import { WidgetShell } from './widget-shell' const SATURACION_COLOR: Record = { 'Alta saturación': '#ef4444', 'Saturación media': '#F8AD13', 'Baja saturación': '#43BBC8', } export function TablaSaturacion({ surveyId, filters }: { surveyId: string; filters: DashboardFilters }) { const [data, setData] = useState(null) const [sup, setSup] = useState(false) useEffect(() => { setData(null); setSup(false) queries.saturacion(surveyId, filters) .then(d => { if (isSuppressed(d)) setSup(true); else setData(d as SaturacionData) }) .catch(() => {}) }, [surveyId, JSON.stringify(filters)]) const status = !data && !sup ? 'loading' : sup ? 'suppressed' : 'ok' return ( {data && (

Alta: bienestar ≤2, rendimiento afectado casi todos los días y ausentismo frecuente. Media: dos de los tres criterios. Baja: uno o ninguno.

{data.segmentos.map(seg => ( ))}
Segmento N % del total Apoyo más demandado
{seg.segmento} {seg.suppressed ? '—' : seg.n} {seg.suppressed ? '—' : `${seg.pct}%`} {seg.suppressed ? Datos insuficientes (n<5) : seg.apoyo ?? '—'}
)}
) }