"use client"; import * as React from "react"; import { Cell, Pie, PieChart, ResponsiveContainer, Tooltip } from "recharts"; import { formatNumber, formatPercent, titleCase } from "@/lib/format"; import { CHART_COLORS, NETWORK_COLORS } from "./chart-theme"; import { ChartTooltip } from "./chart-tooltip"; export interface NetworkSlice { network: string; requests: number; percent: number; } const LIVE_NETWORKS = new Set(["residential"]); /** * Part-to-whole of resolved network classes. All four classes are listed (0 % rows included); * networks that are not live yet say so instead of pretending to have traffic. */ export function NetworkDonut({ data, size = 156 }: { data: NetworkSlice[]; size?: number }) { const nonZero = data.filter((d) => d.requests > 0); const total = data.reduce((a, d) => a + d.requests, 0); return (
titleCase(String(p[0]?.name ?? ""))} valueFormatter={(v) => `${formatNumber(v)} req`} />} /> 1 ? 2 : 0} stroke={CHART_COLORS.surface} strokeWidth={2} isAnimationActive={false} cornerRadius={3} > {(nonZero.length ? nonZero : [{ network: "none" }]).map((d) => ( ))}
{formatNumber(total)} resolved
); }