'use client' import { useEffect, useState } from 'react' import { isSuppressed, type KpiData, type SuppressedPayload } from '@/lib/dashboard-types' import { queries } from '@/lib/dashboard-queries' import type { DashboardFilters } from '@/lib/dashboard-types' interface KpiCardProps { label: string; value: string; sub?: string } function KpiCard({ label, value, sub }: KpiCardProps) { return (
{value} {label} {sub && {sub}}
) } interface Props { surveyId: string; filters: DashboardFilters } export function KpiCards({ surveyId, filters }: Props) { const [data, setData] = useState(null) const [error, setError] = useState(false) useEffect(() => { setData(null); setError(false) queries.kpis(surveyId, filters) .then(d => setData(d as KpiData | SuppressedPayload)) .catch(() => setError(true)) }, [surveyId, JSON.stringify(filters)]) if (error) return

Error al cargar KPIs

if (!data) { return (
{[1,2,3,4].map(i =>
)}
) } if (isSuppressed(data)) { return (
{[1,2,3,4].map(i => (
🔒 n < 5
))}
) } const d = data as KpiData return (
) }