import type { TickerOverview } from "@/types/api"; import { fmtNumber } from "@/lib/format"; function activityLabel(ratio: number): string { if (ratio >= 1.5) return "elevated activity"; if (ratio < 0.7) return "below average"; return "normal activity"; } export function VolumeCard({ overview }: { overview: TickerOverview }) { const today = overview.stats.volume; const avg = overview.stats.average_volume; if (today == null && avg == null) return null; const max = Math.max(today ?? 0, avg ?? 0); const todayPct = today != null && max > 0 ? Math.round((today / max) * 100) : 0; const avgPct = avg != null && max > 0 ? Math.round((avg / max) * 100) : 0; const ratio = today != null && avg != null && avg > 0 ? today / avg : null; return (
Volume

Volume

Today
{today != null ? fmtNumber(today, 0) : "—"}
30d avg
{avg != null ? fmtNumber(avg, 0) : "—"}
{ratio != null && (

{ratio >= 1 ? "▲" : "▼"} {ratio.toFixed(2)}× average · {activityLabel(ratio)}

)}
); }