From 8ef10a2117aa093b2833cb59f3d28d7cd74e1029 Mon Sep 17 00:00:00 2001 From: Lantt Date: Wed, 15 Jun 2022 14:41:25 +0800 Subject: [PATCH] fix: should show custom erc721 token in dashboard nft list --- .../Wallets/components/AddCollectibleDialog/index.tsx | 2 ++ .../pages/Wallets/components/CollectibleList/index.tsx | 10 ++++++---- .../plugin-infra/src/web3/useTrustedFungibleTokens.ts | 2 +- .../src/web3/useTrustedNonFungibleTokens.ts | 9 +++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/dashboard/src/pages/Wallets/components/AddCollectibleDialog/index.tsx b/packages/dashboard/src/pages/Wallets/components/AddCollectibleDialog/index.tsx index d8b6c537e829..ad5c920e1ede 100644 --- a/packages/dashboard/src/pages/Wallets/components/AddCollectibleDialog/index.tsx +++ b/packages/dashboard/src/pages/Wallets/components/AddCollectibleDialog/index.tsx @@ -74,6 +74,8 @@ export const AddCollectibleDialog = memo(({ open, onC if (!isOwner) { throw new Error(FormErrorType.NotExist) } else { + tokenDetailed.owner = { address: account } + tokenDetailed.ownerId = account await Token?.addToken?.(tokenDetailed) onClose() } diff --git a/packages/dashboard/src/pages/Wallets/components/CollectibleList/index.tsx b/packages/dashboard/src/pages/Wallets/components/CollectibleList/index.tsx index fbefd90e4a9a..a156a631b1ea 100644 --- a/packages/dashboard/src/pages/Wallets/components/CollectibleList/index.tsx +++ b/packages/dashboard/src/pages/Wallets/components/CollectibleList/index.tsx @@ -44,7 +44,11 @@ interface CollectibleListProps { export const CollectibleList = memo(({ selectedChain }) => { const navigate = useNavigate() const account = useAccount() - const trustedNonFungibleTokens = useTrustedNonFungibleTokens() + const trustedNonFungibleTokens = useTrustedNonFungibleTokens( + NetworkPluginID.PLUGIN_EVM, + undefined, + selectedChain?.chainId as ChainId, + ) const { value = EMPTY_LIST, @@ -57,9 +61,7 @@ export const CollectibleList = memo(({ selectedChain }) => }) const renderCollectibles = useMemo(() => { - const trustedOwnNonFungibleTokens = trustedNonFungibleTokens.filter((x) => - isSameAddress(x.contract?.owner, account), - ) + const trustedOwnNonFungibleTokens = trustedNonFungibleTokens.filter((x) => isSameAddress(x.ownerId, account)) return uniqBy( [...trustedOwnNonFungibleTokens, ...value], (x) => x?.contract?.address.toLowerCase() + x?.tokenId, diff --git a/packages/plugin-infra/src/web3/useTrustedFungibleTokens.ts b/packages/plugin-infra/src/web3/useTrustedFungibleTokens.ts index 475b7fb0d8b8..ba2eb20401c4 100644 --- a/packages/plugin-infra/src/web3/useTrustedFungibleTokens.ts +++ b/packages/plugin-infra/src/web3/useTrustedFungibleTokens.ts @@ -16,5 +16,5 @@ export function useTrustedFungibleTokens (schemaType ? x.schema === schemaType : true)) .filter((x) => (chainId ? x.chainId === chainId : true)) - }, [schemaType, fungibleTokens]) + }, [schemaType, fungibleTokens, chainId]) } diff --git a/packages/plugin-infra/src/web3/useTrustedNonFungibleTokens.ts b/packages/plugin-infra/src/web3/useTrustedNonFungibleTokens.ts index b031d9bd703e..fba9ecf2cad3 100644 --- a/packages/plugin-infra/src/web3/useTrustedNonFungibleTokens.ts +++ b/packages/plugin-infra/src/web3/useTrustedNonFungibleTokens.ts @@ -8,12 +8,13 @@ import { EMPTY_ARRAY } from '../utils/subscription' export function useTrustedNonFungibleTokens( pluginID?: T, schemaType?: Web3Helper.SchemaTypeScope, + chainId?: Web3Helper.ChainIdScope, ) { const { Token } = useWeb3State(pluginID) const nonFungibleTokens = useSubscription(Token?.trustedNonFungibleTokens ?? EMPTY_ARRAY) return useMemo>>(() => { - return nonFungibleTokens.length && schemaType - ? nonFungibleTokens.filter((x) => x.schema === schemaType) - : nonFungibleTokens - }, [schemaType, nonFungibleTokens]) + return nonFungibleTokens + .filter((x) => (schemaType ? x.schema === schemaType : true)) + .filter((x) => (chainId ? x.chainId === chainId : true)) + }, [schemaType, nonFungibleTokens, chainId]) }