"use client" import { Frame, FrameHeader, FramePanel, FrameTitle } from "@/components/reui/frame" import { StatisticsBreakdownDataGrid, type StatisticsSliceKind, } from "@/components/data-grids/statistics-breakdown-data-grid" import { STATISTICS_DIMS } from "@/lib/statistics-dims" import type { StatisticsBreakdownRow, StatisticsDto } from "@mmapp/contracts/statistics" const MINI_ROWS = 12 function rowsForKind(data: StatisticsDto, kind: StatisticsSliceKind): StatisticsBreakdownRow[] { if (kind === "users") return data.users if (kind === "servers") return data.servers if (kind === "interfaces") return data.interfaces if (kind === "countries") return data.countries if (kind === "services") return data.services return data.asns } export function BreakdownDashboard({ data, hidden, selectedIdFor, onRowClick, isLoading, }: { data: StatisticsDto hidden: Set selectedIdFor: (kind: StatisticsSliceKind) => string | undefined onRowClick: (kind: StatisticsSliceKind, row: StatisticsBreakdownRow) => void isLoading?: boolean }) { const dims = STATISTICS_DIMS.filter((d) => !hidden.has(d.id)) return (
{dims.map((d) => ( {d.label} onRowClick(d.id, row)} isLoading={isLoading} density="mini" /> ))}
) }