1
1
import { type ReactNode } from "react" ;
2
- import { AnimatedNumber } from "../primitives/AnimatedNumber" ;
3
- import { Spinner } from "../primitives/Spinner" ;
4
- import { SimpleTooltip } from "../primitives/Tooltip" ;
5
2
import { cn } from "~/utils/cn" ;
6
3
import { formatNumber , formatNumberCompact } from "~/utils/numberFormatter" ;
7
4
import { Header3 } from "../primitives/Headers" ;
5
+ import { Spinner } from "../primitives/Spinner" ;
6
+ import { SimpleTooltip } from "../primitives/Tooltip" ;
7
+ import { AnimatedNumber } from "../primitives/AnimatedNumber" ;
8
8
9
9
interface BigNumberProps {
10
10
title : ReactNode ;
@@ -29,15 +29,12 @@ export function BigNumber({
29
29
accessory,
30
30
animate = false ,
31
31
loading = false ,
32
- compactThreshold = 100000 ,
32
+ compactThreshold,
33
33
} : BigNumberProps ) {
34
34
const v = value ?? defaultValue ;
35
35
36
- const formatValue = ( num : number ) => {
37
- return num >= compactThreshold ? formatNumberCompact ( num ) : formatNumber ( num ) ;
38
- } ;
39
-
40
- const shouldCompact = v !== undefined && v >= compactThreshold ;
36
+ const shouldCompact =
37
+ typeof compactThreshold === "number" && v !== undefined && v >= compactThreshold ;
41
38
42
39
return (
43
40
< div className = "flex flex-col justify-between gap-4 rounded-sm border border-grid-dimmed bg-background-bright p-4" >
@@ -57,13 +54,13 @@ export function BigNumber({
57
54
< div className = "flex flex-wrap items-baseline gap-2" >
58
55
{ shouldCompact ? (
59
56
< SimpleTooltip
60
- button = { animate ? < AnimatedNumber value = { v } /> : formatValue ( v ) }
57
+ button = { animate ? < AnimatedNumber value = { v } /> : formatNumberCompact ( v ) }
61
58
content = { formatNumber ( v ) }
62
59
/>
63
60
) : animate ? (
64
61
< AnimatedNumber value = { v } />
65
62
) : (
66
- formatValue ( v )
63
+ formatNumber ( v )
67
64
) }
68
65
{ suffix && < div className = { cn ( "text-xs" , suffixClassName ) } > { suffix } </ div > }
69
66
</ div >
0 commit comments