فهرست منبع

fix(stats): format market share tokens

Adam 2 ماه پیش
والد
کامیت
36264ccf90
2فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
  1. 4 3
      packages/stats/app/src/routes/index.tsx
  2. 2 2
      packages/stats/core/src/domain/home.ts

+ 4 - 3
packages/stats/app/src/routes/index.tsx

@@ -1450,9 +1450,7 @@ function formatCountryName(country: string) {
 }
 }
 
 
 function formatGeoTokens(value: number) {
 function formatGeoTokens(value: number) {
-  if (value >= 1) return formatTrillions(value)
-  if (value >= 0.001) return `${Number((value * 1000).toFixed(value >= 0.01 ? 0 : 1))}B`
-  return `${Math.round(value * 1_000_000)}M`
+  return formatTrillions(value)
 }
 }
 
 
 function formatGeoShare(value: number) {
 function formatGeoShare(value: number) {
@@ -1508,6 +1506,9 @@ function formatMarketMobileDate(label: string) {
 }
 }
 
 
 function formatTrillions(value: number) {
 function formatTrillions(value: number) {
+  if (value === 0) return "0"
+  if (value < 0.001) return `${Number((value * 1_000_000).toFixed(value >= 0.00001 ? 0 : 1))}M`
+  if (value < 1) return `${Number((value * 1_000).toFixed(value >= 0.01 ? 0 : 1))}B`
   return `${value.toFixed(value >= 10 ? 0 : 1)}T`
   return `${value.toFixed(value >= 10 ? 0 : 1)}T`
 }
 }
 
 

+ 2 - 2
packages/stats/core/src/domain/home.ts

@@ -538,11 +538,11 @@ function buildMarketShare(rows: ProviderMetricRow[], product: UsageProduct, rang
     return [
     return [
       {
       {
         date: bucket.label,
         date: bucket.label,
-        total: round(totalTokens / 1_000_000_000_000, 2),
+        total: round(totalTokens / 1_000_000_000_000, 6),
         authors: withOther.map((item) => ({
         authors: withOther.map((item) => ({
           author: item.provider === "Other" ? "Other" : formatProvider(item.provider),
           author: item.provider === "Other" ? "Other" : formatProvider(item.provider),
           share: round((item.tokens / totalTokens) * 100, 1),
           share: round((item.tokens / totalTokens) * 100, 1),
-          tokens: round(item.tokens / 1_000_000_000_000, 2),
+          tokens: round(item.tokens / 1_000_000_000_000, 6),
         })),
         })),
       },
       },
     ]
     ]