diff --git a/web/default/src/features/dashboard/components/models/log-stat-cards.tsx b/web/default/src/features/dashboard/components/models/log-stat-cards.tsx index 5466ed40..92431560 100644 --- a/web/default/src/features/dashboard/components/models/log-stat-cards.tsx +++ b/web/default/src/features/dashboard/components/models/log-stat-cards.tsx @@ -18,8 +18,9 @@ For commercial licensing, please contact support@quantumnous.com */ import { useEffect, useState } from 'react' import { useAuthStore } from '@/stores/auth-store' -import { formatNumber, formatQuota } from '@/lib/format' +import { formatCompactNumber, formatNumber, formatQuota } from '@/lib/format' import { computeTimeRange } from '@/lib/time' +import { cn } from '@/lib/utils' import { Skeleton } from '@/components/ui/skeleton' import { getUserQuotaDates } from '@/features/dashboard/api' import { useModelStatCardsConfig } from '@/features/dashboard/hooks/use-dashboard-config' @@ -38,6 +39,21 @@ interface LogStatCardsProps { onDataUpdate?: (data: QuotaDataItem[], loading: boolean) => void } +const MAX_INLINE_STAT_CHARS = 9 + +function formatStatNumber(value: number) { + const fullValue = formatNumber(value) + const displayValue = + fullValue.length > MAX_INLINE_STAT_CHARS + ? formatCompactNumber(value) + : fullValue + + return { + displayValue, + fullValue, + } +} + export function LogStatCards(props: LogStatCardsProps) { const statCardsConfig = useModelStatCardsConfig() const user = useAuthStore((state) => state.auth.user) @@ -100,27 +116,41 @@ export function LogStatCards(props: LogStatCardsProps) { tpm: stats?.totalTokens ?? 0, } - const items = statCardsConfig.map((config) => ({ - title: config.title, - value: + const items = statCardsConfig.map((config) => { + const rawValue = config.getValue(adaptedStats, timeRangeMinutes) + const formatted = config.key === 'quota' - ? formatQuota(config.getValue(adaptedStats, timeRangeMinutes)) - : formatNumber(config.getValue(adaptedStats, timeRangeMinutes)), - desc: config.description, - icon: config.icon, - })) + ? { + displayValue: formatQuota(rawValue), + fullValue: formatQuota(rawValue), + } + : formatStatNumber(rawValue) + + return { + title: config.title, + value: formatted.displayValue, + fullValue: formatted.fullValue, + desc: config.description, + icon: config.icon, + } + }) return (