'use client'; import {RankChart} from '@/components/data/rank-chart'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card'; import type {DistributionItem, TrafficDistributions} from '@/lib/services/openflare'; function toRankItems(items: DistributionItem[]) { return items.map((item) => ({ label: item.key, value: item.value, })); } export function SourceDistributionChart({ items, }: { items: TrafficDistributions['source_countries']; }) { return ( 来源分布 聚合最近 24 小时主要来源国家。 ); } export function StatusCodeDistributionChart({ items, }: { items: TrafficDistributions['status_codes']; }) { return ( 状态码分布 快速判断成功响应是否仍是主流,以及错误码是否有抬升。 ({ ...item, label: `HTTP ${item.label}`, }))} color="#f59e0b" emptyMessage="暂无状态码分布" /> ); } export function TopDomainChart({ items, }: { items: TrafficDistributions['top_domains']; }) { return ( Top Domain 观察主要流量集中在哪些域名。 ); }