From 6e477661f883cb57767f2653abb56e4c982ac1f4 Mon Sep 17 00:00:00 2001 From: xintaofei Date: Sat, 18 Apr 2026 11:57:52 +0800 Subject: [PATCH] feat(status-bar): compact large token counts with K/M units in usage popover --- src/components/layout/status-bar-tokens.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/layout/status-bar-tokens.tsx b/src/components/layout/status-bar-tokens.tsx index 6fb3161..e0e6e7d 100644 --- a/src/components/layout/status-bar-tokens.tsx +++ b/src/components/layout/status-bar-tokens.tsx @@ -16,14 +16,14 @@ const ICON_CENTER = 8 const ICON_VIEWBOX = 16 const ICON_CIRCUMFERENCE = 2 * Math.PI * ICON_RADIUS -function formatNumber(n: number): string { - return n.toLocaleString() -} - function formatTokenCount(n: number): string { - if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M` - if (n >= 1_000) return `${(n / 1_000).toFixed(1)}K` - return String(n) + if (n >= 1_000_000) { + return `${(n / 1_000_000).toFixed(1).replace(/\.0$/, "")}M` + } + if (n >= 1_000) { + return `${(n / 1_000).toFixed(1).replace(/\.0$/, "")}K` + } + return n.toLocaleString() } function formatPercent(percent: number | null): string { @@ -192,7 +192,7 @@ export function StatusBarTokens() { {contextUsed == null || contextMax == null ? "--" - : `${formatNumber(contextUsed)} / ${formatNumber(contextMax)}`} + : `${formatTokenCount(contextUsed)} / ${formatTokenCount(contextMax)}`} @@ -214,7 +214,7 @@ export function StatusBarTokens() { > {t(row.key)} - {formatNumber(row.value)} + {formatTokenCount(row.value)} ))}