'use client'; import { formatCompactNumber } from '@/lib/utils/metrics'; type RankChartItem = { label: string; value: number; }; function clamp(value: number, min: number, max: number) { return Math.min(Math.max(value, min), max); } export function RankChart({ items, color, valueFormatter = formatCompactNumber, emptyMessage = '暂无数据', }: { items: RankChartItem[]; color: string; valueFormatter?: (value: number) => string; emptyMessage?: string; }) { const validItems = items.filter( (item) => item.label.trim() !== '' && Number.isFinite(item.value), ); const maxValue = Math.max(1, ...validItems.map((item) => item.value)); if (validItems.length === 0) { return (
#{index + 1}
{item.label}
{valueFormatter(item.value)}