index.tsx 564 B

1234567891011121314151617181920212223242526
  1. "use client";
  2. import * as dnum from "dnum";
  3. import { useMemo } from "react";
  4. import { useLocale } from "react-aria";
  5. const DECIMALS = 6;
  6. type Props = {
  7. mode?: "compact" | "wholePart" | "full";
  8. tokens: bigint;
  9. };
  10. export const FormattedTokens = ({ tokens, mode = "compact" }: Props) => {
  11. const { locale } = useLocale();
  12. const value = useMemo(
  13. () =>
  14. dnum.format([tokens, DECIMALS], {
  15. compact: mode === "compact",
  16. locale,
  17. }),
  18. [tokens, locale, mode],
  19. );
  20. return mode === "wholePart" ? value.split(".")[0] : value;
  21. };