import { Fragment } from "react" /** Compact RX/TX history shared by traffic cards. Gaps remain gaps. */ export function TrafficMiniChart({ rx, tx, height = 44 }: { rx: (number|null)[]; tx: (number|null)[]; height?: number }) { const valid = (value: number|null): value is number => value !== null && Number.isFinite(value) && value >= 0 const values = [...rx, ...tx].filter(valid) if (!values.length) return

Нет истории трафика

const width = 300 const count = Math.max(rx.length, tx.length) const max = Math.max(...values, 1) * 1.1 const segments = (series: (number|null)[]) => { const result: Array> = [] let current: Array<{ x: number; y: number }> = [] series.forEach((value, index) => { if (!valid(value)) { current = []; return } if (!current.length) result.push(current) current.push({ x: count <= 1 ? width / 2 : index / (count - 1) * width, y: height - value / max * height }) }) return result } return ( {([[rx, "var(--chart-rx)"], [tx, "var(--chart-tx)"]] as const).map(([series, color], direction) => ( {segments(series).map((points, index) => { if (points.length === 1) return const line = points.map(p => `${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(" ") return })} ))} ) }