import { type ReactNode } from "react"; import { cn } from "~/utils/cn"; import { formatNumber, formatNumberCompact } from "~/utils/numberFormatter"; import { Header3 } from "../primitives/Headers"; import { Spinner } from "../primitives/Spinner"; import { SimpleTooltip } from "../primitives/Tooltip"; import { AnimatedNumber } from "../primitives/AnimatedNumber"; interface BigNumberProps { title: ReactNode; animate?: boolean; loading?: boolean; value?: number; valueClassName?: string; defaultValue?: number; accessory?: ReactNode; suffix?: ReactNode; suffixClassName?: string; compactThreshold?: number; } export function BigNumber({ title, value, defaultValue, valueClassName, suffix, suffixClassName, accessory, animate = false, loading = false, compactThreshold, }: BigNumberProps) { const v = value ?? defaultValue; const shouldCompact = typeof compactThreshold === "number" && v !== undefined && v >= compactThreshold; return (