From 0c92894b520cd110306722e810e5ede52e56a5d3 Mon Sep 17 00:00:00 2001 From: etouyang Date: Thu, 27 Jan 2022 21:17:15 +0800 Subject: [PATCH 1/7] feat: add share dialog --- packages/mask/shared-ui/locales/en-US.json | 2 + .../src/plugins/Pets/SNSAdaptor/PetDialog.tsx | 328 ++---------------- .../plugins/Pets/SNSAdaptor/PetSetDialog.tsx | 317 +++++++++++++++++ .../Pets/SNSAdaptor/PetShareDialog.tsx | 53 +++ packages/mask/src/plugins/Pets/constants.ts | 5 + 5 files changed, 405 insertions(+), 300 deletions(-) create mode 100644 packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx create mode 100644 packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx diff --git a/packages/mask/shared-ui/locales/en-US.json b/packages/mask/shared-ui/locales/en-US.json index 7a684617bab1..25e04c455219 100644 --- a/packages/mask/shared-ui/locales/en-US.json +++ b/packages/mask/shared-ui/locales/en-US.json @@ -882,11 +882,13 @@ "plugin_furucombo_head_pools": "Pools", "plugin_furucombo_head_action": "Action", "plugin_pets_dialog_title": "Non-Fungible Friends", + "plugin_pets_dialog_title_share": "Successful", "plugin_pets_dialog_contract": "NFT Contract", "plugin_pets_dialog_token": "Token ID", "plugin_pets_dialog_msg": "Greeting message", "plugin_pets_dialog_msg_optional": "Optional, 100 characters max.", "plugin_pets_dialog_btn": "Confirm", + "plugin_pets_dialog_btn_share": "Share", "plugin_pets_dialog_preview": "Preview", "plugin_pets_dialog_created": "Created by MintTeam", "plugin_pets_dialog_powered": "Powered by RSS3", diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx index 659d3b629886..639dc7f30072 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx @@ -1,326 +1,54 @@ -import { useEffect, useState, useMemo, ReactNode } from 'react' +import { useState } from 'react' import { useAsync } from 'react-use' +import type { Constant } from '@masknet/web3-shared-evm/constants/utils' import { useRemoteControlledDialog } from '@masknet/shared' -import { isSameAddress } from '@masknet/web3-shared-evm' -import { makeStyles, useStylesExtends, useCustomSnackbar } from '@masknet/theme' -import { TextField, Typography, Box, DialogContent, Grid, MenuItem, Snackbar, Autocomplete } from '@mui/material' -import { LoadingButton } from '@mui/lab' +import { DialogContent } from '@mui/material' import { PluginPetMessages, PluginPetRPC } from '../messages' import { InjectedDialog } from '../../../components/shared/InjectedDialog' -import { initMeta, initCollection, GLB3DIcon } from '../constants' -import { PreviewBox } from './PreviewBox' -import { PetMetaDB, FilterContract, OwnerERC721TokenInfo, ImageType } from '../types' -import { useUser, useNFTs, useNFTsExtra } from '../hooks' import { useI18N } from '../../../utils' -import { ShadowRootPopper } from '../../../utils/shadow-root/ShadowRootComponents' -import { ImageLoader } from './ImageLoader' -import type { Constant } from '@masknet/web3-shared-evm/constants/utils' +import { PetShareDialog } from './PetShareDialog' +import { PetSetDialog } from './PetSetDialog' -const useStyles = makeStyles()((theme) => ({ - desBox: { - display: 'flex', - justifyContent: 'space-between', - }, - des: { - color: '#7b8192', - fontSize: '12px', - }, - input: { - margin: theme.spacing(2, 0, 0), - }, - inputOption: { - margin: theme.spacing(4, 0, 0), - }, - inputBorder: { - borderRadius: theme.spacing(1), - padding: theme.spacing(1), - }, - inputArea: { - borderRadius: theme.spacing(1), - padding: theme.spacing(2), - }, - menuItem: { - width: '100%', - }, - btn: { - margin: theme.spacing(8, 0, 4), - }, - thumbnail: { - width: 25, - height: 25, - objectFit: 'cover', - margin: theme.spacing(0, 1, 0, 0), - display: 'inline-block', - borderRadius: 4, - }, - glbIcon: { - width: 15, - height: 18, - marginLeft: theme.spacing(1), - }, - itemFix: { - display: 'flex', - alignItems: 'center', - width: '100%', - }, - itemTxt: { - flex: 1, - marginLeft: theme.spacing(0.5), - }, - prevBox: { - margin: theme.spacing(2, 0, 0), - border: '1px dashed #ccc', - borderRadius: 4, - height: 'calc(100% - 16px)', - boxSizing: 'border-box', - padding: 4, - }, - boxPaper: { - backgroundColor: theme.palette.mode === 'dark' ? '#1B1E38' : '#FFFFFF', - marginBottom: 10, - boxShadow: theme.palette.mode === 'dark' ? '0 0 5px #FFFFFF' : '0 0 5px #CCCCCC', - }, -})) +enum PetFriendNFTStep { + SetFriendNFT = 'set', + ShareFriendNFT = 'share', +} export function PetDialog() { const { t } = useI18N() - const classes = useStylesExtends(useStyles(), {}) - const { showSnackbar } = useCustomSnackbar() const { open, closeDialog } = useRemoteControlledDialog(PluginPetMessages.events.essayDialogUpdated, () => {}) + const [step, setStep] = useState(PetFriendNFTStep.SetFriendNFT) const [configNFTs, setConfigNFTs] = useState | undefined>(undefined) - const [loading, setLoading] = useState(false) - - const user = useUser() - const nfts = useNFTs(user, configNFTs) - const extraData = useNFTsExtra(configNFTs) - const [collection, setCollection] = useState(initCollection) - const [isCollectionsError, setCollectionsError] = useState(false) - - const [metaData, setMetaData] = useState(initMeta) - const [isImageError, setImageError] = useState(false) - const [isTipShow, setTipShow] = useState(false) - const [holderChange, setHolderChange] = useState(true) - const [tokenInfoSelect, setTokenInfoSelect] = useState(null) - const [inputTokenName, setInputTokenName] = useState('') useAsync(async () => { setConfigNFTs(await PluginPetRPC.getConfigEssay()) }, []) - useEffect(() => { - if (open) return - setMetaData(initMeta) - setCollection(initCollection) - setTokenInfoSelect(null) - setInputTokenName('') - }, [open]) + const handleSetDialogClose = () => setStep(PetFriendNFTStep.ShareFriendNFT) let timer: NodeJS.Timeout | null = null - const closeDialogHandle = () => { - setTipShow(true) + const handleClose = () => { closeDialog() if (timer !== null) clearTimeout(timer) timer = setTimeout(() => { - setTipShow(false) - }, 2000) - PluginPetMessages.events.setResult.sendToAll(Math.random()) - } - - const saveHandle = async () => { - if (!collection.name) { - setCollectionsError(true) - return - } - if (!metaData.image) { - setImageError(true) - return - } - setLoading(true) - const chosenToken = collection.tokens.find((item) => item.mediaUrl === metaData.image) - const meta = { - ...metaData, - userId: user.userId, - contract: collection.contract, - tokenId: chosenToken?.tokenId ?? '', - } - try { - await PluginPetRPC.setUserAddress(user) - await PluginPetRPC.saveEssay(user.address, meta, user.userId) - closeDialogHandle() - } catch { - showSnackbar(t('plugin_pets_dialog_fail'), { variant: 'error' }) - } finally { - setLoading(false) - } - } - - const onCollectionChange = (v: string) => { - const matched = nfts.find((item) => item.name === v) - if (matched) { - setCollection(matched) - setTokenInfoSelect(null) - setInputTokenName('') - setMetaData({ - ...metaData, - userId: user.userId, - tokenId: '', - image: '', - }) - } - setCollectionsError(false) - } - - const onImageChange = (v: OwnerERC721TokenInfo | null) => { - setTokenInfoSelect(v) - setInputTokenName(v?.name ?? '') - setMetaData({ - ...metaData, - userId: user.userId, - tokenId: v?.tokenId ?? '', - image: v?.mediaUrl ?? '', - type: v?.glbSupport ? ImageType.GLB : ImageType.NORMAL, - }) - setImageError(false) - } - - const setMsgValueCheck = (v: string) => { - if (v.length <= 100) { - setMetaData({ ...metaData, word: v }) - } + setStep(PetFriendNFTStep.SetFriendNFT) + }, 500) } - const imageChose = useMemo(() => { - if (!metaData.image) return '' - const imageChosen = collection.tokens.find((item) => item.tokenId === metaData.tokenId) - return imageChosen?.mediaUrl - }, [metaData.image, collection.tokens]) - - const renderImg = (address: string) => { - const matched = extraData.find((item) => isSameAddress(item.address, address)) - return - } - - const paperComponent = (children: ReactNode | undefined) => {children} - - const nftsRender = useMemo(() => { - return ( - onCollectionChange(newValue?.name ?? '')} - getOptionLabel={(option) => option.name} - PopperComponent={ShadowRootPopper} - PaperComponent={({ children }) => paperComponent(children)} - renderOption={(props, option) => ( - - - {renderImg(option.contract)} - {option.name} - - - )} - renderInput={(params) => ( - - )} - /> - ) - }, [nfts, extraData]) - - const tokensRender = useMemo(() => { - return ( - onImageChange(newValue)} - getOptionLabel={(option) => option.name ?? ''} - PaperComponent={({ children }) => paperComponent(children)} - PopperComponent={ShadowRootPopper} - renderOption={(props, option) => ( - - {!option.glbSupport ? : null} - {option.name} - {option.glbSupport ? : null} - - )} - renderInput={(params) => ( - - )} - /> - ) - }, [collection.tokens, tokenInfoSelect]) - return ( - <> - - - - - - - - {nftsRender} - {tokensRender} - setMsgValueCheck(e.target.value)} - onBlur={() => setHolderChange(true)} - onFocus={() => setHolderChange(false)} - /> - - - - - {t('plugin_pets_dialog_btn')} - - - {t('plugin_pets_dialog_created')} - {t('plugin_pets_dialog_powered')} - - - - - + + + {step === PetFriendNFTStep.SetFriendNFT ? ( + + ) : ( + + )} + + ) } diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx new file mode 100644 index 000000000000..5bad22a4739a --- /dev/null +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx @@ -0,0 +1,317 @@ +import { useEffect, useState, useMemo, ReactNode } from 'react' +import { isSameAddress } from '@masknet/web3-shared-evm' +import { makeStyles, useStylesExtends, useCustomSnackbar } from '@masknet/theme' +import { TextField, Typography, Box, Grid, MenuItem, Snackbar, Autocomplete } from '@mui/material' +import { LoadingButton } from '@mui/lab' +import type { Constant } from '@masknet/web3-shared-evm/constants/utils' +import { PluginPetMessages, PluginPetRPC } from '../messages' +import { initMeta, initCollection, GLB3DIcon } from '../constants' +import { PreviewBox } from './PreviewBox' +import { PetMetaDB, FilterContract, OwnerERC721TokenInfo, ImageType } from '../types' +import { useUser, useNFTs, useNFTsExtra } from '../hooks' +import { useI18N } from '../../../utils' +import { ShadowRootPopper } from '../../../utils/shadow-root/ShadowRootComponents' +import { ImageLoader } from './ImageLoader' + +const useStyles = makeStyles()((theme) => ({ + desBox: { + display: 'flex', + justifyContent: 'space-between', + }, + des: { + color: '#7b8192', + fontSize: '12px', + }, + input: { + margin: theme.spacing(2, 0, 0), + }, + inputOption: { + margin: theme.spacing(4, 0, 0), + }, + inputBorder: { + borderRadius: theme.spacing(1), + padding: theme.spacing(1), + }, + inputArea: { + borderRadius: theme.spacing(1), + padding: theme.spacing(2), + }, + menuItem: { + width: '100%', + }, + btn: { + margin: theme.spacing(8, 0, 4), + }, + thumbnail: { + width: 25, + height: 25, + objectFit: 'cover', + margin: theme.spacing(0, 1, 0, 0), + display: 'inline-block', + borderRadius: 4, + }, + glbIcon: { + width: 15, + height: 18, + marginLeft: theme.spacing(1), + }, + itemFix: { + display: 'flex', + alignItems: 'center', + width: '100%', + }, + itemTxt: { + flex: 1, + marginLeft: theme.spacing(0.5), + }, + prevBox: { + margin: theme.spacing(2, 0, 0), + border: '1px dashed #ccc', + borderRadius: 4, + height: 'calc(100% - 16px)', + boxSizing: 'border-box', + padding: 4, + }, + boxPaper: { + backgroundColor: theme.palette.mode === 'dark' ? '#1B1E38' : '#FFFFFF', + marginBottom: 10, + boxShadow: theme.palette.mode === 'dark' ? '0 0 5px #FFFFFF' : '0 0 5px #CCCCCC', + }, +})) + +interface PetSetDialogProps { + configNFTs: Record | undefined + onClose: () => void +} + +export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { + const { t } = useI18N() + const classes = useStylesExtends(useStyles(), {}) + const { showSnackbar } = useCustomSnackbar() + const [loading, setLoading] = useState(false) + + const user = useUser() + const nfts = useNFTs(user, configNFTs) + const extraData = useNFTsExtra(configNFTs) + const [collection, setCollection] = useState(initCollection) + const [isCollectionsError, setCollectionsError] = useState(false) + + const [metaData, setMetaData] = useState(initMeta) + const [isImageError, setImageError] = useState(false) + const [isTipShow, setTipShow] = useState(false) + const [holderChange, setHolderChange] = useState(true) + const [tokenInfoSelect, setTokenInfoSelect] = useState(null) + const [inputTokenName, setInputTokenName] = useState('') + + useEffect(() => { + setMetaData(initMeta) + setCollection(initCollection) + setTokenInfoSelect(null) + setInputTokenName('') + }, []) + + let timer: NodeJS.Timeout | null = null + const closeDialogHandle = () => { + setTipShow(true) + onClose() + if (timer !== null) clearTimeout(timer) + timer = setTimeout(() => { + setTipShow(false) + }, 2000) + PluginPetMessages.events.setResult.sendToAll(Math.random()) + } + + const saveHandle = async () => { + if (!collection.name) { + setCollectionsError(true) + return + } + if (!metaData.image) { + setImageError(true) + return + } + setLoading(true) + const chosenToken = collection.tokens.find((item) => item.mediaUrl === metaData.image) + const meta = { + ...metaData, + userId: user.userId, + contract: collection.contract, + tokenId: chosenToken?.tokenId ?? '', + } + try { + await PluginPetRPC.setUserAddress(user) + await PluginPetRPC.saveEssay(user.address, meta, user.userId) + closeDialogHandle() + } catch { + showSnackbar(t('plugin_pets_dialog_fail'), { variant: 'error' }) + } finally { + setLoading(false) + } + } + + const onCollectionChange = (v: string) => { + const matched = nfts.find((item) => item.name === v) + if (matched) { + setCollection(matched) + setTokenInfoSelect(null) + setInputTokenName('') + setMetaData({ + ...metaData, + userId: user.userId, + tokenId: '', + image: '', + }) + } + setCollectionsError(false) + } + + const onImageChange = (v: OwnerERC721TokenInfo | null) => { + setTokenInfoSelect(v) + setInputTokenName(v?.name ?? '') + setMetaData({ + ...metaData, + userId: user.userId, + tokenId: v?.tokenId ?? '', + image: v?.mediaUrl ?? '', + type: v?.glbSupport ? ImageType.GLB : ImageType.NORMAL, + }) + setImageError(false) + } + + const setMsgValueCheck = (v: string) => { + if (v.length <= 100) { + setMetaData({ ...metaData, word: v }) + } + } + + const imageChose = useMemo(() => { + if (!metaData.image) return '' + const imageChosen = collection.tokens.find((item) => item.tokenId === metaData.tokenId) + return imageChosen?.mediaUrl + }, [metaData.image, collection.tokens]) + + const renderImg = (address: string) => { + const matched = extraData.find((item) => isSameAddress(item.address, address)) + return + } + + const paperComponent = (children: ReactNode | undefined) => {children} + + const nftsRender = useMemo(() => { + return ( + onCollectionChange(newValue?.name ?? '')} + getOptionLabel={(option) => option.name} + PopperComponent={ShadowRootPopper} + PaperComponent={({ children }) => paperComponent(children)} + renderOption={(props, option) => ( + + + {renderImg(option.contract)} + {option.name} + + + )} + renderInput={(params) => ( + + )} + /> + ) + }, [nfts, extraData]) + + const tokensRender = useMemo(() => { + return ( + onImageChange(newValue)} + getOptionLabel={(option) => option.name ?? ''} + PaperComponent={({ children }) => paperComponent(children)} + PopperComponent={ShadowRootPopper} + renderOption={(props, option) => ( + + {!option.glbSupport ? : null} + {option.name} + {option.glbSupport ? : null} + + )} + renderInput={(params) => ( + + )} + /> + ) + }, [collection.tokens, tokenInfoSelect]) + + return ( + <> + + + + + + + {nftsRender} + {tokensRender} + setMsgValueCheck(e.target.value)} + onBlur={() => setHolderChange(true)} + onFocus={() => setHolderChange(false)} + /> + + + + + {t('plugin_pets_dialog_btn')} + + + {t('plugin_pets_dialog_created')} + {t('plugin_pets_dialog_powered')} + + + + + ) +} diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx new file mode 100644 index 000000000000..408590319a08 --- /dev/null +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx @@ -0,0 +1,53 @@ +import { useCallback } from 'react' +import { makeStyles, useStylesExtends } from '@masknet/theme' +import { Button, Typography, Box } from '@mui/material' +import { activatedSocialNetworkUI } from '../../../social-network' +import { useI18N } from '../../../utils' +import { Share_Twitter_TXT } from '../constants' + +const useStyles = makeStyles()((theme) => ({ + root: { + margin: theme.spacing(0, 2.5), + }, + shareNotice: { + color: '#222', + fontSize: '16px', + fontFamily: 'TwitterChirp', + lineHeight: '16px', + marginTop: theme.spacing(2), + }, + shareButton: { + width: '100%', + margin: theme.spacing(4, 0, 3), + }, +})) + +interface PetSetDialogProps { + onClose: () => void +} + +export function PetShareDialog({ onClose }: PetSetDialogProps) { + const { t } = useI18N() + const classes = useStylesExtends(useStyles(), {}) + const shareLink = activatedSocialNetworkUI.utils.getShareLinkURL?.('') + + const onShareClick = useCallback(() => { + if (shareLink) { + const search = '?text=' + Share_Twitter_TXT + shareLink.search = search + shareLink.href = shareLink.origin + shareLink.pathname + shareLink.search + const share = shareLink.toString() + window.open(share, '_blank', 'noopener noreferrer') + } + onClose() + }, [shareLink]) + + return ( + + {t('plugin_pets_dialog_success')} + + + ) +} diff --git a/packages/mask/src/plugins/Pets/constants.ts b/packages/mask/src/plugins/Pets/constants.ts index ca7a2719a584..1f4b18c371dc 100644 --- a/packages/mask/src/plugins/Pets/constants.ts +++ b/packages/mask/src/plugins/Pets/constants.ts @@ -34,6 +34,11 @@ export const Punk3D = { }), } +export const Share_Twitter = 'https://twitter.com/realMaskNetwork/status/1486648872558424064?s=20' +export const Share_Twitter_TXT = encodeURIComponent( + `I just set up my Non-Fungible Friend with @realMaskNetwork (powered by @MintTeamNFT). Visit my profile to check it out! Install Mask Network extension from mask.io and set yours.\n #mask_io #nonfungiblefriends\n${Share_Twitter}`, +) + export const GLB3DIcon = new URL('./assets/glb3D.png', import.meta.url).toString() export const CloseIcon = new URL('./assets/close.png', import.meta.url).toString() export const DragIcon = new URL('./assets/drag.png', import.meta.url).toString() From f78cb905b215c5b87aaf0b6ee3a251ecc0e8ee4d Mon Sep 17 00:00:00 2001 From: etouyang Date: Thu, 27 Jan 2022 21:23:32 +0800 Subject: [PATCH 2/7] fix: add cspell word --- cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.json b/cspell.json index e57c3333e581..a555c3d4f0ef 100644 --- a/cspell.json +++ b/cspell.json @@ -342,6 +342,7 @@ "nftred", "NFTX", "noamount", + "nonfungiblefriends", "northcutt", "notistack", "nrge", From bc32a84913fd66dcfa8a005d729b14b1f4fdcc88 Mon Sep 17 00:00:00 2001 From: Jack Works Date: Mon, 7 Feb 2022 11:37:40 +0800 Subject: [PATCH 3/7] Update packages/mask/src/plugins/Pets/constants.ts Co-authored-by: guanbinrui <52657989+guanbinrui@users.noreply.github.com> --- packages/mask/src/plugins/Pets/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mask/src/plugins/Pets/constants.ts b/packages/mask/src/plugins/Pets/constants.ts index 1f4b18c371dc..df5e3a81701e 100644 --- a/packages/mask/src/plugins/Pets/constants.ts +++ b/packages/mask/src/plugins/Pets/constants.ts @@ -34,7 +34,7 @@ export const Punk3D = { }), } -export const Share_Twitter = 'https://twitter.com/realMaskNetwork/status/1486648872558424064?s=20' +export const Share_Twitter = 'https://twitter.com/realMaskNetwork/status/1486648872558424064' export const Share_Twitter_TXT = encodeURIComponent( `I just set up my Non-Fungible Friend with @realMaskNetwork (powered by @MintTeamNFT). Visit my profile to check it out! Install Mask Network extension from mask.io and set yours.\n #mask_io #nonfungiblefriends\n${Share_Twitter}`, ) From 075632eeeb721b55da0ecd9962ee879a4a81d538 Mon Sep 17 00:00:00 2001 From: etouyang Date: Mon, 7 Feb 2022 11:38:52 +0800 Subject: [PATCH 4/7] fix: error word --- .../plugins/Pets/SNSAdaptor/PetSetDialog.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx index feb06c2c0440..09a0b6834b97 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx @@ -108,11 +108,11 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { const nfts = useNFTs(user, configNFTs) const extraData = useNFTsExtra(configNFTs) const [collection, setCollection] = useState(initCollection) - const [isCollectionsError, setCollectionsError] = useState(false) + const [isCollectionsError, setIsCollectionsError] = useState(false) const [metaData, setMetaData] = useState(initMeta) - const [isImageError, setImageError] = useState(false) - const [isTipShow, setTipShow] = useState(false) + const [isImageError, setIsImageError] = useState(false) + const [isTipShow, setIsTipShow] = useState(false) const [holderChange, setHolderChange] = useState(true) const [tokenInfoSelect, setTokenInfoSelect] = useState(null) const [inputTokenName, setInputTokenName] = useState('') @@ -126,22 +126,22 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { let timer: NodeJS.Timeout | null = null const closeDialogHandle = () => { - setTipShow(true) + setIsTipShow(true) onClose() if (timer !== null) clearTimeout(timer) timer = setTimeout(() => { - setTipShow(false) + setIsTipShow(false) }, 2000) PluginPetMessages.events.setResult.sendToAll(Math.random()) } const saveHandle = async () => { if (!collection.name) { - setCollectionsError(true) + setIsCollectionsError(true) return } if (!metaData.image) { - setImageError(true) + setIsImageError(true) return } setLoading(true) @@ -176,7 +176,7 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { image: '', }) } - setCollectionsError(false) + setIsCollectionsError(false) } const onImageChange = (v: OwnerERC721TokenInfo | null) => { @@ -189,7 +189,7 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { image: v?.mediaUrl ?? '', type: v?.glbSupport ? ImageType.GLB : ImageType.NORMAL, }) - setImageError(false) + setIsImageError(false) } const setMsgValueCheck = (v: string) => { From e7ac18470db88afc849c17a01b886308fdb0258e Mon Sep 17 00:00:00 2001 From: etouyang Date: Mon, 7 Feb 2022 15:42:18 +0800 Subject: [PATCH 5/7] fix: show in profile --- .../mask/src/plugins/Pets/assets/punk2d.png | Bin 17126 -> 82523 bytes .../mask/src/plugins/Pets/hooks/useEssay.ts | 12 ++++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/mask/src/plugins/Pets/assets/punk2d.png b/packages/mask/src/plugins/Pets/assets/punk2d.png index 6df747db6bf094ec6fd9a29ed2c0a98fbfcc1317..097162e6d70f96be8e9a0d5fe0baa482d330f12b 100644 GIT binary patch literal 82523 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 literal 17126 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 uka7Q|#(#WI>^JdFp+Q&kl;6^iA|pZ{N~!4g3L diff --git a/packages/mask/src/plugins/Pets/hooks/useEssay.ts b/packages/mask/src/plugins/Pets/hooks/useEssay.ts index 95ef0c3ef469..3b123a876b94 100644 --- a/packages/mask/src/plugins/Pets/hooks/useEssay.ts +++ b/packages/mask/src/plugins/Pets/hooks/useEssay.ts @@ -4,6 +4,7 @@ import { useAsync } from 'react-use' import { PluginPetRPC } from '../messages' import type { User } from '../types' import { Punk3D, DEFAULT_SET_WORD, MASK_TWITTER, DEFAULT_PUNK_MASK_WORD, PunkIcon } from './../constants' +import { useUser } from './useUser' export function useEssay(user: User, refresh?: number) { return useAsync(async () => { @@ -15,16 +16,19 @@ export function useEssay(user: User, refresh?: number) { export function useDefaultEssay(user: User) { const [essayMeta, setEssayMeta] = useState(undefined) + const profileUser = useUser() useEffect(() => { if (user?.userId || user?.userId !== '$unknown') { + const isProfile = user.userId === profileUser.userId + const isMASK = user.userId === MASK_TWITTER setEssayMeta({ - image: user.userId === MASK_TWITTER ? Punk3D.url : PunkIcon, - word: user.userId === MASK_TWITTER ? DEFAULT_PUNK_MASK_WORD : DEFAULT_SET_WORD, - type: user.userId === MASK_TWITTER ? ImageType.GLB : ImageType.NORMAL, + image: isMASK ? Punk3D.url : isProfile ? PunkIcon : '', + word: isMASK ? DEFAULT_PUNK_MASK_WORD : DEFAULT_SET_WORD, + type: isMASK ? ImageType.GLB : ImageType.NORMAL, }) } else { setEssayMeta(undefined) } - }, [user]) + }, [user, profileUser]) return essayMeta } From 496b62c7f81b32fdaeeb100e002d947c3e048d68 Mon Sep 17 00:00:00 2001 From: etouyang Date: Mon, 7 Feb 2022 17:05:07 +0800 Subject: [PATCH 6/7] fix: change word notice --- packages/mask/src/plugins/Pets/constants.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mask/src/plugins/Pets/constants.ts b/packages/mask/src/plugins/Pets/constants.ts index df5e3a81701e..9e16706aabc9 100644 --- a/packages/mask/src/plugins/Pets/constants.ts +++ b/packages/mask/src/plugins/Pets/constants.ts @@ -6,7 +6,8 @@ export const PetsPluginID = 'com.maskbook.pets' export const TWITTER = 'twitter.com' export const MASK_TWITTER = 'realMaskNetwork' export const NFTS_CONFIG_ADDRESS = '0x500cF2ea6755ea35eAC8727A70D997ecc3d26258' -export const DEFAULT_SET_WORD = 'Click the Mask icon to the left and set up your Non-Fungible Friend in "NFTs" tab!' +export const DEFAULT_SET_WORD = + 'Click the wallet icon on the left side of the page and set up your Non-Fungible Friend in "NFTs" tab!' export const DEFAULT_PUNK_MASK_WORD = "I'm CryptoPunk #6128... in 3D & with a body! Voyagers, welcome to the uncharted waters of WEB3!" From ffef7a900bd8424586162e04b77a2a1d7bd46248 Mon Sep 17 00:00:00 2001 From: etouyang Date: Wed, 9 Feb 2022 13:25:51 +0800 Subject: [PATCH 7/7] fix: useTimeout --- .../src/plugins/Pets/SNSAdaptor/PetDialog.tsx | 9 +++------ .../plugins/Pets/SNSAdaptor/PetSetDialog.tsx | 17 ++++------------- .../plugins/Pets/SNSAdaptor/PetShareDialog.tsx | 4 ++-- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx index 639dc7f30072..c41972abf26a 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetDialog.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import { useAsync } from 'react-use' +import { useAsync, useTimeout } from 'react-use' import type { Constant } from '@masknet/web3-shared-evm/constants/utils' import { useRemoteControlledDialog } from '@masknet/shared' import { DialogContent } from '@mui/material' @@ -19,6 +19,7 @@ export function PetDialog() { const { open, closeDialog } = useRemoteControlledDialog(PluginPetMessages.events.essayDialogUpdated, () => {}) const [step, setStep] = useState(PetFriendNFTStep.SetFriendNFT) const [configNFTs, setConfigNFTs] = useState | undefined>(undefined) + const [isReady, cancel] = useTimeout(500) useAsync(async () => { setConfigNFTs(await PluginPetRPC.getConfigEssay()) @@ -26,13 +27,9 @@ export function PetDialog() { const handleSetDialogClose = () => setStep(PetFriendNFTStep.ShareFriendNFT) - let timer: NodeJS.Timeout | null = null const handleClose = () => { closeDialog() - if (timer !== null) clearTimeout(timer) - timer = setTimeout(() => { - setStep(PetFriendNFTStep.SetFriendNFT) - }, 500) + isReady() ? setStep(PetFriendNFTStep.SetFriendNFT) : cancel() } return ( diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx index 09a0b6834b97..d56c28726f8c 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetSetDialog.tsx @@ -1,4 +1,5 @@ -import { useEffect, useState, useMemo, ReactNode } from 'react' +import { useState, useMemo, ReactNode } from 'react' +import { useTimeout } from 'react-use' import { isSameAddress } from '@masknet/web3-shared-evm' import { makeStyles, useStylesExtends, useCustomSnackbar } from '@masknet/theme' import { useValueRef } from '@masknet/shared' @@ -103,6 +104,7 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { const { showSnackbar } = useCustomSnackbar() const [loading, setLoading] = useState(false) const checked = useValueRef(petShowSettings) + const [isReady, cancel] = useTimeout(2000) const user = useUser() const nfts = useNFTs(user, configNFTs) @@ -117,21 +119,10 @@ export function PetSetDialog({ configNFTs, onClose }: PetSetDialogProps) { const [tokenInfoSelect, setTokenInfoSelect] = useState(null) const [inputTokenName, setInputTokenName] = useState('') - useEffect(() => { - setMetaData(initMeta) - setCollection(initCollection) - setTokenInfoSelect(null) - setInputTokenName('') - }, []) - - let timer: NodeJS.Timeout | null = null const closeDialogHandle = () => { setIsTipShow(true) onClose() - if (timer !== null) clearTimeout(timer) - timer = setTimeout(() => { - setIsTipShow(false) - }, 2000) + isReady() ? setIsTipShow(false) : cancel() PluginPetMessages.events.setResult.sendToAll(Math.random()) } diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx index 408590319a08..c717d2599246 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/PetShareDialog.tsx @@ -1,5 +1,5 @@ import { useCallback } from 'react' -import { makeStyles, useStylesExtends } from '@masknet/theme' +import { makeStyles } from '@masknet/theme' import { Button, Typography, Box } from '@mui/material' import { activatedSocialNetworkUI } from '../../../social-network' import { useI18N } from '../../../utils' @@ -28,7 +28,7 @@ interface PetSetDialogProps { export function PetShareDialog({ onClose }: PetSetDialogProps) { const { t } = useI18N() - const classes = useStylesExtends(useStyles(), {}) + const { classes } = useStyles() const shareLink = activatedSocialNetworkUI.utils.getShareLinkURL?.('') const onShareClick = useCallback(() => {