Skip to content

Commit 6d00f47

Browse files
authored
[WIP] feat: mf-6528 redpacket condition (#12012)
* fix: remove unused codes in web3profile * feat: redpacket condition * refactor: allow to select multiple tokens * fixup! refactor: allow to select multiple tokens * fix: adjust style for token picker * fix: token picker * fix: nft collection picker * fix: typing * fix: token icon * fix: mf-6540 adjust redpacket layout * fix: show conditions in confirm page * fixup! fix: token icon * fixup! fix: token icon * fix: run codegen --------- Co-authored-by: swkatmask <[email protected]>
1 parent 83acdda commit 6d00f47

File tree

52 files changed

+1609
-540
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1609
-540
lines changed

packages/mask/popups/components/TokenPicker/TokenItem.tsx

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Trans } from '@lingui/react/macro'
22
import { Icons } from '@masknet/icons'
3-
import { NetworkIcon, ProgressiveText, TokenIcon } from '@masknet/shared'
3+
import { ProgressiveText, TokenIcon } from '@masknet/shared'
44
import { NetworkPluginID } from '@masknet/shared-base'
55
import { useEverSeen } from '@masknet/shared-base-ui'
66
import { makeStyles } from '@masknet/theme'
@@ -9,16 +9,7 @@ import { useFungibleTokenBalance, useWeb3Utils } from '@masknet/web3-hooks-base'
99
import { debank } from '@masknet/web3-providers/helpers'
1010
import { type ReasonableNetwork } from '@masknet/web3-shared-base'
1111
import type { ChainId } from '@masknet/web3-shared-evm'
12-
import {
13-
Box,
14-
Link,
15-
ListItem,
16-
ListItemIcon,
17-
ListItemText,
18-
Typography,
19-
useForkRef,
20-
type ListItemProps,
21-
} from '@mui/material'
12+
import { Link, ListItem, ListItemIcon, ListItemText, Typography, useForkRef, type ListItemProps } from '@mui/material'
2213
import { memo, useMemo, useRef } from 'react'
2314
import { formatTokenBalance } from '../../../shared/index.js'
2415

@@ -38,14 +29,6 @@ const useStyles = makeStyles()((theme) => {
3829
width: 36,
3930
height: 36,
4031
},
41-
badgeIcon: {
42-
position: 'absolute',
43-
right: -6,
44-
bottom: -4,
45-
border: `1px solid ${theme.palette.common.white}`,
46-
borderRadius: '50%',
47-
fontSize: 10,
48-
},
4932
listText: {
5033
margin: 0,
5134
},
@@ -141,25 +124,16 @@ export const TokenItem = memo(function TokenItem({
141124
ref={forkedRef}
142125
{...rest}>
143126
<ListItemIcon>
144-
{/* TODO utility TokenIcon with badge */}
145-
<Box position="relative">
146-
<TokenIcon
147-
className={classes.tokenIcon}
148-
pluginID={NetworkPluginID.PLUGIN_EVM}
149-
chainId={asset.chainId}
150-
address={asset.address}
151-
name={asset.name}
152-
logoURL={asset.logoURL}
153-
size={36}
154-
/>
155-
<NetworkIcon
156-
className={classes.badgeIcon}
157-
pluginID={NetworkPluginID.PLUGIN_EVM}
158-
chainId={network?.chainId || asset.chainId}
159-
size={16}
160-
network={network}
161-
/>
162-
</Box>
127+
<TokenIcon
128+
className={classes.tokenIcon}
129+
pluginID={NetworkPluginID.PLUGIN_EVM}
130+
chainId={asset.chainId}
131+
address={asset.address}
132+
name={asset.name}
133+
logoURL={asset.logoURL}
134+
size={36}
135+
badgeSize={16}
136+
/>
163137
</ListItemIcon>
164138
<ListItemText
165139
className={classes.listText}

packages/mask/popups/modals/ChooseCurrencyModal/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ const CurrencyItem = memo(function CurrencyItem({ fiatCurrencyType }: CurrencyIt
6363
<FiatCurrencyIcon type={fiatCurrencyType} size={24} />
6464
<Typography className={classes.text}>{resolveCurrencyFullName(fiatCurrencyType)}</Typography>
6565
</Box>
66-
<RadioIndicator size={20} checked={checked} unCheckedButtonColor={theme.palette.maskColor.secondaryLine} />
66+
<RadioIndicator size={20} checked={checked} uncheckedColor={theme.palette.maskColor.secondaryLine} />
6767
</li>
6868
)
6969
})

packages/mask/popups/pages/Trader/useImplementRuntime.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export function useImplementRuntime() {
1919
async (
2020
currentToken: Web3Helper.FungibleTokenAll | null | undefined,
2121
side: 'from' | 'to',
22-
excludes: string[],
22+
excludes: Web3Helper.FungibleTokenAll[],
2323
): Promise<Web3Helper.FungibleTokenAll | null> => {
2424
const supportedChains = chainQuery.data ?? (await chainQuery.refetch()).data
2525

@@ -32,7 +32,7 @@ export function useImplementRuntime() {
3232
lockChainId: isSwap && side === 'to' && !!fromChainId,
3333
assetSource: AssetSource.Okx,
3434
})
35-
if (!picked) return null
35+
if (!picked || Array.isArray(picked)) return null
3636
return {
3737
id: picked.address,
3838
chainId: picked.chainId,

packages/plugins/RedPacket/src/SiteAdaptor/RedPacket/index.tsx

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -260,33 +260,35 @@ export const RedPacket = memo(function RedPacket({ payload }: RedPacketProps) {
260260
const claimedOrEmpty = listOfStatus.includes(RedPacketStatus.claimed) || isEmpty
261261

262262
return (
263-
<Card className={classes.root} component="article" elevation={0}>
264-
<RedPacketEnvelope
265-
className={classes.envelope}
266-
cover={cover?.backgroundImageUrl || new URL('../assets/cover.png', import.meta.url).href}
267-
message={payload.sender.message}
268-
token={token}
269-
shares={payload.shares}
270-
isClaimed={isClaimed}
271-
isEmpty={isEmpty}
272-
isExpired={isExpired}
273-
isRefunded={isRefunded}
274-
claimedCount={+availability.claimed}
275-
total={payload.total}
276-
totalClaimed={minus(payload.total, payload.total_remaining || availability.balance).toFixed()}
277-
claimedAmount={availability.claimed_amount}
278-
creator={payload.sender.name}
279-
/>
280-
{cover ?
281-
<Grow in={showRequirements ? !checkingClaimStatus : false} timeout={250}>
282-
<Requirements
283-
showResults={!claimedOrEmpty}
284-
statusList={claimStrategyStatus?.claimStrategyStatus ?? EMPTY_LIST}
285-
className={classes.requirements}
286-
onClose={() => setShowRequirements(false)}
287-
/>
288-
</Grow>
289-
: null}
263+
<>
264+
<Card className={classes.root} component="article" elevation={0}>
265+
<RedPacketEnvelope
266+
className={classes.envelope}
267+
cover={cover?.backgroundImageUrl || new URL('../assets/cover.png', import.meta.url).href}
268+
message={payload.sender.message}
269+
token={token}
270+
shares={payload.shares}
271+
isClaimed={isClaimed}
272+
isEmpty={isEmpty}
273+
isExpired={isExpired}
274+
isRefunded={isRefunded}
275+
claimedCount={+availability.claimed}
276+
total={payload.total}
277+
totalClaimed={minus(payload.total, payload.total_remaining || availability.balance).toFixed()}
278+
claimedAmount={availability.claimed_amount}
279+
creator={payload.sender.name}
280+
/>
281+
{cover ?
282+
<Grow in={showRequirements ? !checkingClaimStatus : false} timeout={250}>
283+
<Requirements
284+
showResults={!claimedOrEmpty}
285+
statusList={claimStrategyStatus?.claimStrategyStatus ?? EMPTY_LIST}
286+
className={classes.requirements}
287+
onClose={() => setShowRequirements(false)}
288+
/>
289+
</Grow>
290+
: null}
291+
</Card>
290292
{outdated ?
291293
null
292294
: myHandle ?
@@ -306,6 +308,6 @@ export const RedPacket = memo(function RedPacket({ payload }: RedPacketProps) {
306308
}}
307309
/>
308310
}
309-
</Card>
311+
</>
310312
)
311313
})

0 commit comments

Comments
 (0)