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 (