From 15b57a5f8b0ec932e2d6c791648137caf1f43489 Mon Sep 17 00:00:00 2001 From: Frenkie Nguyen Date: Wed, 8 Jan 2025 16:03:39 +0700 Subject: [PATCH] [Issue-3960] Update enable native token when turn on token --- .../src/services/chain-service/index.ts | 2 +- .../Settings/Tokens/component/TokenItemFooter.tsx | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/extension-base/src/services/chain-service/index.ts b/packages/extension-base/src/services/chain-service/index.ts index 841e547c0a6..1700e0a7014 100644 --- a/packages/extension-base/src/services/chain-service/index.ts +++ b/packages/extension-base/src/services/chain-service/index.ts @@ -11,7 +11,7 @@ import { SubstrateChainHandler } from '@subwallet/extension-base/services/chain- import { TonChainHandler } from '@subwallet/extension-base/services/chain-service/handler/TonChainHandler'; import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types'; import { _ChainApiStatus, _ChainConnectionStatus, _ChainState, _CUSTOM_PREFIX, _DataMap, _EvmApi, _NetworkUpsertParams, _NFT_CONTRACT_STANDARDS, _SMART_CONTRACT_STANDARDS, _SmartContractTokenInfo, _SubstrateApi, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse } from '@subwallet/extension-base/services/chain-service/types'; -import { _isAssetAutoEnable, _isAssetCanPayTxFee, _isAssetFungibleToken, _isChainEnabled, _isCustomAsset, _isCustomChain, _isCustomProvider, _isEqualContractAddress, _isEqualSmartContractAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isPureEvmChain, _isPureSubstrateChain, _parseAssetRefKey, randomizeProvider, updateLatestChainInfo } from '@subwallet/extension-base/services/chain-service/utils'; +import { _isAssetAutoEnable, _isAssetCanPayTxFee, _isAssetFungibleToken, _isChainEnabled, _isCustomAsset, _isCustomChain, _isCustomProvider, _isEqualContractAddress, _isEqualSmartContractAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isNativeTokenBySlug, _isPureEvmChain, _isPureSubstrateChain, _parseAssetRefKey, randomizeProvider, updateLatestChainInfo } from '@subwallet/extension-base/services/chain-service/utils'; import { EventService } from '@subwallet/extension-base/services/event-service'; import { IChain, IMetadataItem } from '@subwallet/extension-base/services/storage-service/databases'; import DatabaseService from '@subwallet/extension-base/services/storage-service/DatabaseService'; diff --git a/packages/extension-koni-ui/src/Popup/Settings/Tokens/component/TokenItemFooter.tsx b/packages/extension-koni-ui/src/Popup/Settings/Tokens/component/TokenItemFooter.tsx index 5c194f6416b..984fb273714 100644 --- a/packages/extension-koni-ui/src/Popup/Settings/Tokens/component/TokenItemFooter.tsx +++ b/packages/extension-koni-ui/src/Popup/Settings/Tokens/component/TokenItemFooter.tsx @@ -3,13 +3,14 @@ import { _ChainAsset } from '@subwallet/chain-list/types'; import { AssetSetting } from '@subwallet/extension-base/background/KoniTypes'; +import { _isNativeToken } from '@subwallet/extension-base/services/chain-service/utils'; import useNotification from '@subwallet/extension-koni-ui/hooks/common/useNotification'; import useTranslation from '@subwallet/extension-koni-ui/hooks/common/useTranslation'; import { updateAssetSetting } from '@subwallet/extension-koni-ui/messaging'; import { ThemeProps } from '@subwallet/extension-koni-ui/types'; import { Button, Icon, Switch } from '@subwallet/react-ui'; import { PencilSimpleLine } from 'phosphor-react'; -import React, { useCallback, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import { NavigateFunction } from 'react-router'; import styled from 'styled-components'; @@ -25,6 +26,10 @@ function Component ({ assetSetting, className = '', navigate, tokenInfo }: Props const [loading, setLoading] = useState(false); + const isNativeToken = useMemo(() => { + return _isNativeToken(tokenInfo); + }, [tokenInfo]); + const onSwitchTokenVisible = useCallback((checked: boolean, event: React.MouseEvent) => { if (!loading) { setLoading(true); @@ -33,7 +38,8 @@ function Component ({ assetSetting, className = '', navigate, tokenInfo }: Props tokenSlug: tokenInfo.slug, assetSetting: { visible: checked - } + }, + autoEnableNativeToken: !isNativeToken }) .then((result) => { if (!result) { @@ -54,7 +60,7 @@ function Component ({ assetSetting, className = '', navigate, tokenInfo }: Props }); }, 300); } - }, [loading, showNotification, t, tokenInfo.slug]); + }, [isNativeToken, loading, showNotification, t, tokenInfo.slug]); const onClick = useCallback(() => { navigate('/settings/tokens/detail', { state: tokenInfo.slug });