From b3e89a3349d4392045f60e9ea4833b6d0f76f38d Mon Sep 17 00:00:00 2001 From: sokolova-an Date: Tue, 13 Feb 2024 12:23:12 +0100 Subject: [PATCH] Fix: amount transiction --- src/screens/transfer/AmountPage.tsx | 38 +++++++++++++++++------------ 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/screens/transfer/AmountPage.tsx b/src/screens/transfer/AmountPage.tsx index 4f9758a3..c5adffb3 100644 --- a/src/screens/transfer/AmountPage.tsx +++ b/src/screens/transfer/AmountPage.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useState, useTransition } from 'react'; import { useNavigate } from 'react-router-dom'; import { Button, CircularProgress, Input } from '@nextui-org/react'; @@ -17,6 +17,7 @@ export default function AmountPage() { const { estimateFee, getExistentialDeposit } = useExtrinsicProvider(); const { BackButton } = useTelegram(); const { hideMainButton, reset, addMainButton, mainButton } = useMainButton(); + const [isPending, startTransition] = useTransition(); const { selectedAsset, setSelectedAsset } = useGlobalContext(); @@ -86,22 +87,23 @@ export default function AmountPage() { setIsAmountValid(Boolean(maxAmountToSend) && validateGift); }; - const handleChange = async (value: string) => { + const handleChange = (value: string) => { const formattedValue = value.trim().replace(/,/g, '.'); setTransferAll(false); const validateGift = selectedAsset?.isGift ? !!deposit && +formattedValue >= deposit : true; + startTransition(async () => { + const { max, fee, formattedDeposit } = await getTransferDetails( + selectedAsset as TrasferAsset, + formattedValue, + estimateFee, + getExistentialDeposit, + ); - const { max, fee, formattedDeposit } = await getTransferDetails( - selectedAsset as TrasferAsset, - formattedValue, - estimateFee, - getExistentialDeposit, - ); - - setDeposit(formattedDeposit); - setMaxAmountToSend(max); - setSelectedAsset((prev) => ({ ...prev!, fee })); - setIsAmountValid(!!Number(formattedValue) && +formattedValue <= +max && validateGift); + setDeposit(formattedDeposit); + setMaxAmountToSend(max); + setSelectedAsset((prev) => ({ ...prev!, fee })); + setIsAmountValid(!!Number(formattedValue) && +formattedValue <= +max && validateGift); + }); setAmount(formattedValue); }; @@ -124,7 +126,7 @@ export default function AmountPage() { )} @@ -135,7 +137,7 @@ export default function AmountPage() {
- + {!isAmountValid && ( <>