From fa3aadcf72711ba315ba28c076a8c7e7769b3bba Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 19 Oct 2023 13:48:57 +0800 Subject: [PATCH] Fix balance input formatted value (#540) * fix balance input formated value * update check by decimals --- packages/apps/src/components/balance-input.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/apps/src/components/balance-input.tsx b/packages/apps/src/components/balance-input.tsx index 8728bf1f4..683bbac1e 100644 --- a/packages/apps/src/components/balance-input.tsx +++ b/packages/apps/src/components/balance-input.tsx @@ -30,6 +30,7 @@ export function BalanceInput({ token?: Token; onChange?: (value: BalanceInputValue) => void; }) { + const tokenRef = useRef(token); const spanRef = useRef(null); const inputRef = useRef(null); const [dynamicStyle, setDynamicStyle] = useState("text-sm font-normal"); @@ -66,6 +67,14 @@ export function BalanceInput({ } }, [value, dynamic]); + useEffect(() => { + // Fire onChange to update `formatted` + if (tokenRef.current?.decimals !== token?.decimals) { + onChange({ value: value?.value || "", formatted: parseUnits(value?.value || "0", token?.decimals || 0) }); + } + tokenRef.current = token; + }, [value, token, onChange]); + return (