update decimal formatting

This commit is contained in:
tjs 2022-08-11 19:27:36 -07:00
parent f55c4a8820
commit 29da9b24f6
5 changed files with 15 additions and 24 deletions

View File

@ -7,7 +7,7 @@ import React, { ChangeEvent, useCallback, useMemo, useState } from 'react'
import mangoStore from '../../store/state'
import { ModalProps } from '../../types/modal'
import { notify } from '../../utils/notifications'
import { floorToDecimal, formatFixedDecimals } from '../../utils/numbers'
import { floorToDecimal } from '../../utils/numbers'
import { TokenAccount } from '../../utils/tokens'
import ButtonGroup from '../forms/ButtonGroup'
import Input from '../forms/Input'
@ -142,7 +142,7 @@ function DepositModal({ isOpen, onClose, token }: ModalCombinedProps) {
{t('wallet-balance')}
</span>
<span className="text-th-fgd-1 underline">
{formatFixedDecimals(tokenMax.maxAmount)}
{floorToDecimal(tokenMax.maxAmount, tokenMax.maxDecimals)}
</span>
</LinkButton>
</div>

View File

@ -6,7 +6,7 @@ import { ChangeEvent, useCallback, useMemo, useState } from 'react'
import mangoStore from '../../store/state'
import { ModalProps } from '../../types/modal'
import { notify } from '../../utils/notifications'
import { floorToDecimal, formatFixedDecimals } from '../../utils/numbers'
import { floorToDecimal } from '../../utils/numbers'
import ButtonGroup from '../forms/ButtonGroup'
import Input from '../forms/Input'
import Label from '../forms/Label'

View File

@ -14,7 +14,6 @@ import FlipNumbers from 'react-flip-numbers'
import LineChartIcon from '../icons/LineChartIcon'
import ContentBox from '../shared/ContentBox'
import { DownTriangle, UpTriangle } from '../shared/DirectionTriangles'
import { formatFixedDecimals } from '../../utils/numbers'
import SheenLoader from '../shared/SheenLoader'
import { COLORS } from '../../styles/colors'
import { useTheme } from 'next-themes'

View File

@ -1,37 +1,26 @@
import { useState, ChangeEvent, useCallback, useEffect, useMemo } from 'react'
import { PublicKey, TransactionInstruction } from '@solana/web3.js'
import { TransactionInstruction } from '@solana/web3.js'
import { ArrowDownIcon, CogIcon } from '@heroicons/react/solid'
import mangoStore from '../../store/state'
import { RouteInfo } from '@jup-ag/core'
import { Token } from '../../types/jupiter'
import ContentBox from '../shared/ContentBox'
import { notify } from '../../utils/notifications'
import JupiterRoutes from './JupiterRoutes'
import TokenSelect from '../TokenSelect'
import useDebounce from '../shared/useDebounce'
import {
floorToDecimal,
formatFixedDecimals,
numberFormat,
} from '../../utils/numbers'
import { floorToDecimal, numberFormat } from '../../utils/numbers'
import LeverageSlider from './LeverageSlider'
import Input from '../forms/Input'
import { useTranslation } from 'next-i18next'
import SelectToken from './SelectToken'
import { Transition } from '@headlessui/react'
import Switch from '../forms/Switch'
import Button, { LinkButton } from '../shared/Button'
import ButtonGroup from '../forms/ButtonGroup'
import { toUiDecimals } from '@blockworks-foundation/mango-v4'
import Loading from '../shared/Loading'
import { EnterBottomExitBottom } from '../shared/Transitions'
import useJupiter from './useJupiter'
import SwapSettings from './SwapSettings'
const getBestRoute = (routesInfos: RouteInfo[]) => {
return routesInfos[0]
}
const MaxWalletBalance = ({
inputToken,
setAmountIn,
@ -59,9 +48,7 @@ const MaxWalletBalance = ({
return (
<LinkButton className="no-underline" onClick={setMaxInputAmount}>
<span className="mr-1 font-normal text-th-fgd-4">{t('balance')}:</span>
<span className="text-th-fgd-3 underline">
{formatFixedDecimals(tokenInMax)}
</span>
<span className="text-th-fgd-3 underline">{tokenInMax}</span>
</LinkButton>
)
}

View File

@ -22,6 +22,11 @@ export const floorToDecimal = (value: number, decimals: number) => {
return Math.floor(value * 10 ** decimals) / 10 ** decimals
}
const numberFormatter0 = Intl.NumberFormat('en', {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
})
const numberFormatter2 = Intl.NumberFormat('en', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
@ -40,11 +45,11 @@ const numberFormatter6 = Intl.NumberFormat('en', {
export const formatFixedDecimals = (value: number) => {
if (value === 0) {
return 0
} else if (value >= 100) {
return numberFormatter2.format(value)
} else if (value >= 1000) {
return numberFormatter0.format(value)
} else if (value >= 1) {
return numberFormatter4.format(value)
return numberFormatter2.format(value)
} else {
return numberFormatter6.format(value)
return numberFormatter4.format(value)
}
}