interface Row { dimension: unknown; value: unknown; } interface Props { title?: string; rows: Row[]; loading?: boolean; } export default function BarChart({ title, rows, loading }: Props) { const data = (rows ?? []).map(r => ({ label: String(r.dimension ?? "—"), value: Number(r.value ?? 0) })); const max = Math.max(1, ...data.map(d => d.value)); return (
{title && (
{title}
)} {loading ? (
{[0,1,2,3].map(i =>
)}
) : data.length === 0 ? (
No data
) : (
{data.map((d, i) => { const pct = (d.value / max) * 100; return (
{d.label}
{d.value.toLocaleString("en-IN")}
); })}
)}
); }