Skip to content

Commit

Permalink
feat: add base collection when send base redpacket (#11459)
Browse files Browse the repository at this point in the history
* feat: add base collection when send base rp

* fix: prettier

* fix: eslint

---------

Co-authored-by: nuanyang233 <nuanyang233@users.noreply.github.com>
Co-authored-by: guanbinrui <52657989+guanbinrui@users.noreply.github.com>
Co-authored-by: guanbinrui <guanbinrui@users.noreply.github.com>
  • Loading branch information
4 people committed Feb 27, 2024
1 parent 97be7b7 commit 1ac2693
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
Expand Up @@ -17,7 +17,7 @@ import { Icons, type GeneratedIcon } from '@masknet/icons'
import { RequirementType, type FireflyRedpacketSettings } from '../types.js'
import { EMPTY_LIST, NetworkPluginID, PluginID } from '@masknet/shared-base'
import type { NonFungibleCollection } from '@masknet/web3-shared-base'
import { SchemaType, type ChainId } from '@masknet/web3-shared-evm'
import { SchemaType, ChainId } from '@masknet/web3-shared-evm'
import { useChainContext } from '@masknet/web3-hooks-base'
import { Trans } from 'react-i18next'
import { getEnumAsArray } from '@masknet/kit'
Expand Down Expand Up @@ -139,6 +139,20 @@ export function ClaimRequirementsDialog(props: ClaimRequirementsDialogProps) {
schemaType: SchemaType.ERC721,
chainId,
onSubmit: (value: NonFungibleCollection<ChainId, SchemaType>) => setSelectedCollection(value),
collections:
chainId === ChainId.Base ?
[
{
chainId: 8453,
name: 'Firefly (Base) Friends',
address: '0x577294402BA4679b6ba4A24B8e03Ce9d0C728e72',
slug: 'Firefly (Base) Friends',
symbol: '',
iconURL:
'https://remote-image.decentralized-content.com/image?url=https%3A%2F%2Fipfs.decentralized-content.com%2Fipfs%2Fbafybeic5qugbigrxmb4vbyt4qk6cfyqlgmvembkwyrjj3go3lrt74aysci&w=1080&q=75',
},
]
: undefined,
})
}, [chainId])

Expand Down
Expand Up @@ -69,10 +69,19 @@ interface SelectNonFungibleContractDialogProps<T extends NetworkPluginID = Netwo
onSubmit?(
collection: NonFungibleCollection<Web3Helper.Definition[T]['ChainId'], Web3Helper.Definition[T]['SchemaType']>,
): void
initialCollections?: Array<NonFungibleCollection<Web3Helper.ChainIdAll, Web3Helper.SchemaTypeAll>>
}

export const SelectNonFungibleContractDialog = memo(
({ open, pluginID, chainId, onClose, onSubmit, schemaType }: SelectNonFungibleContractDialogProps) => {
({
open,
pluginID,
chainId,
onClose,
onSubmit,
schemaType,
initialCollections,
}: SelectNonFungibleContractDialogProps) => {
const t = useSharedTrans()
const { classes } = useStyles()
const [keyword, setKeyword] = useState('')
Expand Down Expand Up @@ -116,7 +125,8 @@ export const SelectNonFungibleContractDialog = memo(

const filteredCollections = useMemo(() => {
const allCollections = [...customizedCollections, ...collections]
return pluginID === NetworkPluginID.PLUGIN_EVM ?
const result =
pluginID === NetworkPluginID.PLUGIN_EVM ?
allCollections.filter((x) => {
return (
x.address &&
Expand All @@ -127,7 +137,9 @@ export const SelectNonFungibleContractDialog = memo(
)
})
: allCollections
}, [customizedCollections, collections, pluginID])

return [...result, ...(initialCollections ?? [])]
}, [customizedCollections, collections, pluginID, initialCollections])
const fuse = useMemo(() => {
return FuseNonFungibleCollection.create(filteredCollections)
}, [filteredCollections])
Expand Down
Expand Up @@ -14,6 +14,7 @@ export interface SelectNonFungibleContractModalOpenProps<T extends NetworkPlugin
onSubmit?(
collection: NonFungibleCollection<Web3Helper.Definition[T]['ChainId'], Web3Helper.Definition[T]['SchemaType']>,
): void
collections?: Array<NonFungibleCollection<Web3Helper.ChainIdAll, Web3Helper.SchemaTypeAll>>
}

export const SelectNonFungibleContractModal = forwardRef<
Expand All @@ -23,15 +24,19 @@ export const SelectNonFungibleContractModal = forwardRef<
const [chainId, setChainId] = useState<Web3Helper.ChainIdAll>()
const [schemaType, setSchemaType] = useState<SchemaType>()
const [title, setTitle] = useState<string>()
const [collections, setCollections] =
useState<Array<NonFungibleCollection<Web3Helper.ChainIdAll, Web3Helper.SchemaTypeAll>>>()
const [onSubmit, setOnSubmit] =
useState<(collection: NonFungibleCollection<Web3Helper.ChainIdAll, Web3Helper.SchemaTypeAll>) => void>()

const [open, dispatch] = useSingletonModal(ref, {
onOpen(props) {
setPluginID(props.pluginID)
setChainId(props.chainId)
setSchemaType(props.schemaType)
setTitle(props.title)
setOnSubmit(() => props.onSubmit)
setCollections(props.collections)
},
})

Expand All @@ -45,6 +50,7 @@ export const SelectNonFungibleContractModal = forwardRef<
chainId={chainId}
pluginID={pluginID}
onSubmit={onSubmit}
initialCollections={collections}
/>
)
})

0 comments on commit 1ac2693

Please sign in to comment.