From a4cfafb484305d75190bdf344a0caee1db3e2a95 Mon Sep 17 00:00:00 2001 From: tjs Date: Wed, 31 Aug 2022 11:54:43 -0400 Subject: [PATCH] fix handling small decimals in swap form input --- components/swap/SwapForm.tsx | 15 +++++++++++---- components/swap/useTokenMax.tsx | 1 - package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/components/swap/SwapForm.tsx b/components/swap/SwapForm.tsx index 40c2a6c1..afcffcdb 100644 --- a/components/swap/SwapForm.tsx +++ b/components/swap/SwapForm.tsx @@ -252,6 +252,7 @@ const SwapForm = () => { useMargin={useMargin} setAmountIn={setAmountInFormValue} tokenMax={tokenMax} + decimals={decimals} />
@@ -266,6 +267,8 @@ const SwapForm = () => { void + setAmountIn: (x: string) => void tokenMax: number useMargin: boolean + decimals: number }) => { const mangoAccountLoading = mangoStore((s) => s.mangoAccount.initialLoad) const { t } = useTranslation('common') const setMaxInputAmount = () => { const amountIn = useMargin ? amountWithBorrow : tokenMax - setAmountIn(amountIn) + setAmountIn(amountIn.toFixed(decimals)) } if (mangoAccountLoading) return null + const maxAmount = useMargin ? amountWithBorrow : tokenMax + return ( {t('max')}: - {useMargin ? amountWithBorrow : tokenMax} + {maxAmount < 1 ? maxAmount.toFixed(decimals) : maxAmount} ) @@ -448,7 +455,7 @@ const PercentageSelectButtons = ({ }: { amountIn: string decimals: number - setAmountIn: (x: any) => any + setAmountIn: (x: string) => any tokenMax: number }) => { const [sizePercentage, setSizePercentage] = useState('') diff --git a/components/swap/useTokenMax.tsx b/components/swap/useTokenMax.tsx index 3459ad56..78eea1e3 100644 --- a/components/swap/useTokenMax.tsx +++ b/components/swap/useTokenMax.tsx @@ -20,7 +20,6 @@ export const useTokenMax = (useMargin = true) => { inputBankFromGroup.mintDecimals ) ) - console.log('inputBank.mint', inputBank.mint.toString()) const inputBankVaultBalance = group.getTokenVaultBalanceByMintUi( inputBank.mint diff --git a/package.json b/package.json index ca7b6c92..320c778f 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "react": "18.0.0", "react-dom": "18.0.0", "react-flip-numbers": "^3.0.5", - "react-number-format": "^4.9.3", + "react-number-format": "4.5.4", "react-window": "^1.8.7", "recharts": "^2.1.12", "zustand": "^3.7.2" diff --git a/yarn.lock b/yarn.lock index 60a49a23..86fc7232 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4303,10 +4303,10 @@ react-native-url-polyfill@^1.3.0: dependencies: whatwg-url-without-unicode "8.0.0-3" -react-number-format@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-4.9.3.tgz#338500fe9c61b1ac73c8d6dff4ec97dd13fd2b50" - integrity sha512-am1A1xYAbENuKJ+zpM7V+B1oRTSeOHYltqVKExznIVFweBzhLmOBmyb1DfIKjHo90E0bo1p3nzVJ2NgS5xh+sQ== +react-number-format@4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-4.5.4.tgz#b644d79a90fcad2f1009eb0b9a14eb0ddd6c0083" + integrity sha512-DZm4YhJ7B+bbOA+Jgn/ckA9DPcKxrJWHXir4nA1YIeqKZ15XYa/uVLwZohlEcGUKqqx6ZeXppOU4eZczBenHOg== dependencies: prop-types "^15.7.2"