'use client' import { useEffect, useState } from 'react' import { isSuppressed, type DisposicionRedData, type SuppressedPayload, type DashboardFilters, } from '@/lib/dashboard-types' import { queries } from '@/lib/dashboard-queries' import { WidgetShell } from './widget-shell' export function DisposicionRedCard({ surveyId, filters }: { surveyId: string; filters: DashboardFilters }) { const [data, setData] = useState(null) const [error, setError] = useState(false) useEffect(() => { setData(null); setError(false) queries.meDisposicionRed(surveyId, filters) .then((d) => setData(d as DisposicionRedData | SuppressedPayload)) .catch(() => setError(true)) }, [surveyId, JSON.stringify(filters)]) // Esta RPC tiene su propio shape de "suppressed" (n_grupo_apoyo/n_voluntariado, // no min_n/n genérico) — isSuppressed() solo mira `status`, sigue funcionando. const status = error ? 'error' : data === null ? 'loading' : isSuppressed(data) ? 'suppressed' : 'ok' const ok = status === 'ok' ? (data as DisposicionRedData) : null return ( {ok && (
{ok.pct_grupo_apoyo !== null ? `${ok.pct_grupo_apoyo}%` : 'n<5'}

grupo de apoyo (n={ok.n_grupo_apoyo})

{ok.pct_voluntariado !== null ? `${ok.pct_voluntariado}%` : 'n<5'}

voluntariado (n={ok.n_voluntariado})

)}
) }