From b03cd44f20acf6e916ad7781dd654bf20886b1f8 Mon Sep 17 00:00:00 2001 From: lelenei <72531217+lelenei@users.noreply.github.com> Date: Fri, 8 Oct 2021 16:29:21 +0800 Subject: [PATCH 1/3] refactor: NFT wallet to use built-in hooks --- .../src/components/InjectedComponents/EnhancedProfile.tsx | 2 +- packages/web3-shared/src/hooks/index.ts | 1 + .../injection => web3-shared/src/hooks}/useEthereumName.ts | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) rename packages/{maskbook/src/social-network-adaptor/twitter.com/injection => web3-shared/src/hooks}/useEthereumName.ts (93%) diff --git a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx index cce015b401ca..7da2068d5105 100644 --- a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx +++ b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx @@ -5,7 +5,7 @@ import { Box, Link, Typography } from '@material-ui/core' import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined' import { useState, useEffect } from 'react' import { CollectibleListAddress } from '../../extension/options-page/DashboardComponents/CollectibleList' -import { useEthereumAddress } from '../../social-network-adaptor/twitter.com/injection/useEthereumName' +import { useEthereumAddress } from '@masknet/web3-shared/' import { MaskMessage, useI18N } from '../../utils' import { useLocationChange } from '../../utils/hooks/useLocationChange' diff --git a/packages/web3-shared/src/hooks/index.ts b/packages/web3-shared/src/hooks/index.ts index 576222a4210b..daf594e48c77 100644 --- a/packages/web3-shared/src/hooks/index.ts +++ b/packages/web3-shared/src/hooks/index.ts @@ -66,3 +66,4 @@ export * from './useERC20TokensPaged' export * from './useTrustedERC20Tokens' export * from './useTrustERC20TokenCallback' export * from './useAddERC20TokenCallback' +export * from './useEthereumName' diff --git a/packages/maskbook/src/social-network-adaptor/twitter.com/injection/useEthereumName.ts b/packages/web3-shared/src/hooks/useEthereumName.ts similarity index 93% rename from packages/maskbook/src/social-network-adaptor/twitter.com/injection/useEthereumName.ts rename to packages/web3-shared/src/hooks/useEthereumName.ts index b56840c18fe3..e2d5501a702a 100644 --- a/packages/maskbook/src/social-network-adaptor/twitter.com/injection/useEthereumName.ts +++ b/packages/web3-shared/src/hooks/useEthereumName.ts @@ -1,6 +1,8 @@ -import { useResolveENS, useResolveUNS, useAddressNames } from '@masknet/web3-shared' import { useEffect, useMemo, useState } from 'react' import type { AsyncState } from 'react-use/lib/useAsyncFn' +import { useAddressNames } from './useAddressNames' +import { useResolveENS } from './useResolveENS' +import { useResolveUNS } from './useResolveUNS' const ENS_RE = /\S{1,256}\.(eth|kred|xyz|luxe)\b/ const ENS_RE_FULL = new RegExp(`^${ENS_RE.source}$`) From 03b4cebbaf447304aced1a7aec701d995991b4e0 Mon Sep 17 00:00:00 2001 From: lelenei <72531217+lelenei@users.noreply.github.com> Date: Fri, 8 Oct 2021 19:41:17 +0800 Subject: [PATCH 2/3] refactor: ens type enum --- .../src/components/InjectedComponents/EnhancedProfile.tsx | 2 +- packages/web3-shared/src/constants/index.ts | 7 +++++++ packages/web3-shared/src/hooks/useEthereumName.ts | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx index 7da2068d5105..d9395ecca912 100644 --- a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx +++ b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx @@ -5,7 +5,7 @@ import { Box, Link, Typography } from '@material-ui/core' import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined' import { useState, useEffect } from 'react' import { CollectibleListAddress } from '../../extension/options-page/DashboardComponents/CollectibleList' -import { useEthereumAddress } from '@masknet/web3-shared/' +import { useEthereumAddress } from '@masknet/web3-shared' import { MaskMessage, useI18N } from '../../utils' import { useLocationChange } from '../../utils/hooks/useLocationChange' diff --git a/packages/web3-shared/src/constants/index.ts b/packages/web3-shared/src/constants/index.ts index 2addbc621a68..0ce8579f3ea5 100644 --- a/packages/web3-shared/src/constants/index.ts +++ b/packages/web3-shared/src/constants/index.ts @@ -73,3 +73,10 @@ export const useNftRedPacketConstants = hookTransform(getNftRedPacketConstants) // for estimate gas export const FAKE_SIGN_PASSWORD = '0x75466cc969717b172b14253aaeebdc958f2b5037a852c1337650ed4978242dd9' + +// for ens address +export enum ENSTypeName { + ENS_TYPE = 'ENS', + UNS_TYPE = 'UNS', + DEFAULT = 'address', +} diff --git a/packages/web3-shared/src/hooks/useEthereumName.ts b/packages/web3-shared/src/hooks/useEthereumName.ts index e2d5501a702a..317221879d81 100644 --- a/packages/web3-shared/src/hooks/useEthereumName.ts +++ b/packages/web3-shared/src/hooks/useEthereumName.ts @@ -1,5 +1,6 @@ import { useEffect, useMemo, useState } from 'react' import type { AsyncState } from 'react-use/lib/useAsyncFn' +import { ENSTypeName } from '../constants' import { useAddressNames } from './useAddressNames' import { useResolveENS } from './useResolveENS' import { useResolveUNS } from './useResolveUNS' @@ -49,7 +50,7 @@ export function useEthereumAddress(nickname: string, twitterId: string, bio: str value: isLoading ? undefined : { - type: addressENS ? 'ENS' : addressUNS ? 'UNS' : 'address', + type: addressENS ? ENSTypeName.ENS_TYPE : addressUNS ? ENSTypeName.UNS_TYPE : ENSTypeName.DEFAULT, name: addressENS || addressUNS ? name : '', address: isLoading ? '' : addressENS ?? addressUNS ?? ownerAddress ?? '', }, From 14b07545d91078cea4056bfee90a36751745d040 Mon Sep 17 00:00:00 2001 From: lelenei <72531217+lelenei@users.noreply.github.com> Date: Sat, 9 Oct 2021 15:49:35 +0800 Subject: [PATCH 3/3] fix: reply review --- .../src/components/InjectedComponents/EnhancedProfile.tsx | 4 ++-- packages/web3-shared/src/constants/index.ts | 2 +- packages/web3-shared/src/hooks/useEthereumName.ts | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx index d9395ecca912..de4db8b93cb2 100644 --- a/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx +++ b/packages/maskbook/src/components/InjectedComponents/EnhancedProfile.tsx @@ -1,6 +1,6 @@ import { useStylesExtends } from '@masknet/shared' import { getMaskColor, makeStyles } from '@masknet/theme' -import { formatEthereumAddress, resolveAddressLinkOnExplorer, ChainId } from '@masknet/web3-shared' +import { formatEthereumAddress, resolveAddressLinkOnExplorer, ChainId, EthereumNameType } from '@masknet/web3-shared' import { Box, Link, Typography } from '@material-ui/core' import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined' import { useState, useEffect } from 'react' @@ -81,7 +81,7 @@ export function EnhancedProfilePage(props: EnhancedProfilePageProps) { href={resolveAddressLinkOnExplorer(ChainId.Mainnet, address)} target="_blank" rel="noopener noreferrer"> - {type === 'address' ? formatEthereumAddress(address, 4) : name} + {type === EthereumNameType.DEFAULT ? formatEthereumAddress(address, 4) : name}