From a551f41c45d421698ce0f435ab39506723663a9e Mon Sep 17 00:00:00 2001 From: Aleksandr Makhnev Date: Mon, 18 Sep 2023 20:07:17 +0500 Subject: [PATCH] fix: transfer modal close (#1074) --- .../transaction/lib/transactionService.ts | 2 -- .../pages/Assets/SendAsset/SendAsset.tsx | 6 +----- .../SendAssetModal/ui/SendAssetModal.tsx | 18 ++++++++++++------ .../components/ActionSteps/InitOperation.tsx | 2 +- .../ui/components/ActionSteps/Submit.tsx | 8 ++++++++ .../ui/components/TransferForm.tsx | 3 ++- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/renderer/entities/transaction/lib/transactionService.ts b/src/renderer/entities/transaction/lib/transactionService.ts index 8bcdbae47d..e251ade137 100644 --- a/src/renderer/entities/transaction/lib/transactionService.ts +++ b/src/renderer/entities/transaction/lib/transactionService.ts @@ -447,8 +447,6 @@ export const useTransaction = (): ITransactionService => { const getTransactionHash = (transaction: Transaction, api: ApiPromise): HashData => { const extrinsic = getExtrinsic[transaction.type](transaction.args, api); - console.log('xcmMethod', extrinsic.method.toJSON()); - return { callData: extrinsic.method.toHex(), callHash: extrinsic.method.hash.toHex(), diff --git a/src/renderer/pages/Assets/SendAsset/SendAsset.tsx b/src/renderer/pages/Assets/SendAsset/SendAsset.tsx index 9fc5e0b455..02b1267249 100644 --- a/src/renderer/pages/Assets/SendAsset/SendAsset.tsx +++ b/src/renderer/pages/Assets/SendAsset/SendAsset.tsx @@ -1,15 +1,11 @@ -import { useNavigate } from 'react-router-dom'; - import { AssetRouteGuard } from '@renderer/features/assets'; import { Paths } from '@renderer/app/providers'; import { SendAssetModal } from '@renderer/widgets'; export const SendAsset = () => { - const navigate = useNavigate(); - return ( - {(chain, asset) => navigate(Paths.ASSETS)} />} + {(chain, asset) => } ); }; diff --git a/src/renderer/widgets/SendAssetModal/ui/SendAssetModal.tsx b/src/renderer/widgets/SendAssetModal/ui/SendAssetModal.tsx index 0123118a27..99247e0708 100644 --- a/src/renderer/widgets/SendAssetModal/ui/SendAssetModal.tsx +++ b/src/renderer/widgets/SendAssetModal/ui/SendAssetModal.tsx @@ -1,8 +1,9 @@ import { useState, useEffect } from 'react'; import { UnsignedTransaction } from '@substrate/txwrapper-polkadot'; import { useStore, useGate } from 'effector-react'; +import { useNavigate } from 'react-router-dom'; -import { useI18n, useNetworkContext } from '@renderer/app/providers'; +import { Paths, useI18n, useNetworkContext } from '@renderer/app/providers'; import { HexString } from '@renderer/domain/shared-kernel'; import { Transaction, useTransaction, validateBalance } from '@renderer/entities/transaction'; import { Account, MultisigAccount } from '@renderer/entities/account'; @@ -12,7 +13,6 @@ import { Signing } from '@renderer/features/operation'; import { Asset, useBalance } from '@renderer/entities/asset'; import { OperationTitle } from '@renderer/components/common'; import { Chain } from '@renderer/entities/chain'; -import { DEFAULT_TRANSITION } from '@renderer/shared/lib/utils'; import { useToggle } from '@renderer/shared/lib/hooks'; import * as sendAssetModel from '../model/send-asset'; @@ -26,11 +26,12 @@ const enum Step { type Props = { chain: Chain; asset: Asset; - onClose: () => void; }; -export const SendAssetModal = ({ chain, asset, onClose }: Props) => { +export const SendAssetModal = ({ chain, asset }: Props) => { const { t } = useI18n(); + const navigate = useNavigate(); + const { getBalance } = useBalance(); const { getTransactionFee } = useTransaction(); const { connections } = useNetworkContext(); @@ -92,7 +93,12 @@ export const SendAssetModal = ({ chain, asset, onClose }: Props) => { const closeSendModal = () => { toggleIsModalOpen(); - setTimeout(onClose, DEFAULT_TRANSITION); + // TODO: rework to context-free solution + navigate(Paths.ASSETS); + }; + + const closeSendModalFromSubmit = () => { + toggleIsModalOpen(); }; const commonProps = { explorers, addressPrefix }; @@ -107,7 +113,7 @@ export const SendAssetModal = ({ chain, asset, onClose }: Props) => { signature={signature} description={description} api={api} - onClose={closeSendModal} + onClose={closeSendModalFromSubmit} {...commonProps} /> ) : ( diff --git a/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/InitOperation.tsx b/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/InitOperation.tsx index b77f6a4c03..012d66fa53 100644 --- a/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/InitOperation.tsx +++ b/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/InitOperation.tsx @@ -142,7 +142,7 @@ export const InitOperation = ({ const reserveChainId = reserveAsset && config && toHexChainId(config.assetsLocation[reserveAsset.assetLocation].chainId); - const reserveApi = reserveChainId && connections[reserveChainId].api; + const reserveApi = reserveChainId && connections[reserveChainId]?.api; return (
diff --git a/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/Submit.tsx b/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/Submit.tsx index fede8e5ff8..b237a03503 100644 --- a/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/Submit.tsx +++ b/src/renderer/widgets/SendAssetModal/ui/components/ActionSteps/Submit.tsx @@ -53,6 +53,10 @@ export const Submit = ({ api, tx, multisigTx, account, unsignedTx, signature, de if (isMultisig(account) && successMessage) { navigate(Paths.OPERATIONS); + } else { + // TODO: rework to context-free solution + + navigate(Paths.ASSETS); } }; @@ -62,6 +66,10 @@ export const Submit = ({ api, tx, multisigTx, account, unsignedTx, signature, de if (isMultisig(account)) { navigate(Paths.OPERATIONS); + } else { + // TODO: rework to context-free solution + + navigate(Paths.ASSETS); } }; diff --git a/src/renderer/widgets/SendAssetModal/ui/components/TransferForm.tsx b/src/renderer/widgets/SendAssetModal/ui/components/TransferForm.tsx index 6af835a486..a66a16b236 100644 --- a/src/renderer/widgets/SendAssetModal/ui/components/TransferForm.tsx +++ b/src/renderer/widgets/SendAssetModal/ui/components/TransferForm.tsx @@ -322,6 +322,7 @@ export const TransferForm = ({ const validateBalanceForFee = (amount: string): boolean => { const balance = isMultisig(account) ? signerBalance : accountBalance; const nativeTokenBalance = isMultisig(account) ? signerNativeTokenBalance : accountNativeTokenBalance; + const amountBN = new BN(formatAmount(amount, asset.precision)); const xcmFeeBN = new BN(xcmParams.fee || 0); @@ -332,7 +333,7 @@ export const TransferForm = ({ } if (isMultisig(account)) { - return new BN(fee).add(amountBN).add(xcmFeeBN).lte(new BN(balance)); + return new BN(fee).lte(new BN(balance)); } return new BN(fee).add(amountBN).add(xcmFeeBN).lte(new BN(balance));