Skip to content

Commit 7ce8a83

Browse files
committed
fix: remove legacy redpacket dialog
1 parent 241b8d8 commit 7ce8a83

29 files changed

+671
-93
lines changed

packages/mask/shared-ui/initialization/fetch.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function contentFetch(input: RequestInfo | URL, init?: RequestInit) {
2323
const signal = init?.signal
2424
if (init) delete init.signal
2525

26-
return Services.Helper.fetchGlobal(request.clone(), init).then((response) => {
26+
return Services.Helper.fetchGlobal(request, init).then((response) => {
2727
signal?.throwIfAborted()
2828
return response
2929
})
@@ -60,7 +60,7 @@ function canAccessAsContent(url: string) {
6060
if (target.origin.includes('maskbook-backup')) return true
6161
if (isHostName(location, 'mirror.xyz') && isHostName(target, 'mirror-api.com')) return true
6262
// aws s3
63-
if (target.origin.includes('amazonaws.com') && url.includes('x-id=PutObject')) return true
63+
if (isDomainOrSubdomainOf(url, 'amazonaws.com') && url.includes('x-id=PutObject')) return true
6464
if (extensionOrigin === target.origin) return true
6565
return target.origin === location.origin
6666
}

packages/plugins/RedPacket/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@masknet/shared-base": "workspace:^",
2323
"@masknet/shared-base-ui": "workspace:^",
2424
"@masknet/theme": "workspace:^",
25+
"@masknet/typed-message": "workspace:^",
2526
"@masknet/typed-message-react": "workspace:^",
2627
"@masknet/web3-contracts": "workspace:^",
2728
"@masknet/web3-hooks-base": "workspace:^",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Trans } from '@lingui/macro'
12
import { ElementAnchor, EmptyStatus } from '@masknet/shared'
23
import { type NetworkPluginID } from '@masknet/shared-base'
34
import { makeStyles } from '@masknet/theme'
@@ -7,7 +8,6 @@ import { List } from '@mui/material'
78
import { memo } from 'react'
89
import { FireflyRedPacketDetailsItem } from './FireflyRedPacketDetailsItem.js'
910
import { useRedPacketHistory } from './hooks/useRedPacketHistory.js'
10-
import { Trans } from '@lingui/macro'
1111

1212
const useStyles = makeStyles()((theme) => {
1313
const smallQuery = `@media (max-width: ${theme.breakpoints.values.sm}px)`

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useEffect, useMemo, useState } from 'react'
1+
import { useEffect, useMemo } from 'react'
22
import { useAsync } from 'react-use'
33
import { Icons } from '@masknet/icons'
44
import { useChainContext, useNativeTokenPrice, useWallet } from '@masknet/web3-hooks-base'
@@ -73,7 +73,7 @@ export function RedPacketConfirmDialog(props: ConfirmRedPacketFormProps) {
7373
if (settings?.token?.chainId !== chainId) onClose()
7474
}, [chainId, onClose])
7575

76-
const [{ account: publicKey, privateKey = '' }] = useState(() => EVMWeb3.createAccount())
76+
const { account: publicKey, privateKey = '' } = useMemo(() => EVMWeb3.createAccount(), [])
7777

7878
const {
7979
isBalanceInsufficient,

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

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,32 @@
1-
import { CrossIsolationMessages, type PluginID } from '@masknet/shared-base'
1+
import { CrossIsolationMessages } from '@masknet/shared-base'
22
import { createContext, useCallback, useEffect, useState } from 'react'
33

44
import type { CompositionType } from '@masknet/plugin-infra/content-script'
55
import { EVMWeb3ContextProvider } from '@masknet/web3-hooks-base'
6-
import type { FireflyContext } from '../types.js'
7-
import RedPacketDialog from './RedPacketDialog.js'
86
import { RedPacketMainDialog } from './MainDialog.js'
97

108
export const CompositionTypeContext = createContext<CompositionType>('timeline')
119

1210
export function RedPacketInjection() {
1311
const [open, setOpen] = useState(false)
14-
const [source, setSource] = useState<PluginID>()
1512
const [compositionType, setCompositionType] = useState<CompositionType>('timeline')
1613

17-
const [fireflyContext, setFireflyContext] = useState<FireflyContext>()
1814
useEffect(() => {
19-
return CrossIsolationMessages.events.redpacketDialogEvent.on(
20-
({ open, source: pluginId, fireflyContext, compositionType = 'timeline' }) => {
21-
setOpen(open)
22-
setSource(pluginId)
23-
setFireflyContext(fireflyContext)
24-
setCompositionType(compositionType)
25-
},
26-
)
15+
return CrossIsolationMessages.events.redpacketDialogEvent.on(({ open, compositionType = 'timeline' }) => {
16+
setOpen(open)
17+
setCompositionType(compositionType)
18+
})
2719
}, [])
2820

2921
const handleClose = useCallback(() => {
3022
setOpen(false)
3123
}, [])
3224

33-
const [status, setStatus] = useState(false)
34-
useEffect(() => {
35-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
36-
// @ts-ignore
37-
window.toggleRedPacketDialog = () => {
38-
setStatus((v) => !v)
39-
}
40-
}, [])
41-
4225
if (!open) return null
4326
return (
4427
<EVMWeb3ContextProvider>
4528
<CompositionTypeContext value={compositionType}>
46-
{status ?
47-
<RedPacketDialog open onClose={handleClose} source={source} fireflyContext={fireflyContext} />
48-
: <RedPacketMainDialog open onClose={handleClose} />}
29+
<RedPacketMainDialog open onClose={handleClose} />
4930
</CompositionTypeContext>
5031
</EVMWeb3ContextProvider>
5132
)

packages/plugins/RedPacket/src/SiteAdaptor/contexts/RedPacketContext.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export const RedPacketProvider = memo(function RedPacketProvider({ children }: P
104104
const allThemes = useMemo(() => (customThemes ? [...themes, ...customThemes] : themes), [themes, customThemes])
105105

106106
// Token
107-
const [rawAmount, setRawAmount] = useState('1')
107+
const [rawAmount, setRawAmount] = useState('')
108108
const [isRandom, setIsRandom] = useState<0 | 1>(1)
109109
const [shares, setShares] = useState<number>(RED_PACKET_DEFAULT_SHARES)
110110
const { chainId } = useChainContext<NetworkPluginID.PLUGIN_EVM>()

packages/plugins/RedPacket/src/SiteAdaptor/hooks/useHandleCreateOrSelect.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1+
import { t } from '@lingui/macro'
2+
import { RedPacketMetaKey } from '@masknet/plugin-redpacket'
3+
import { ApplicationBoardModal } from '@masknet/shared'
4+
import type { NetworkPluginID } from '@masknet/shared-base'
5+
import { useChainContext } from '@masknet/web3-hooks-base'
16
import { EVMWeb3 } from '@masknet/web3-providers'
27
import type { FireflyRedPacketAPI, RedPacketJSONPayload } from '@masknet/web3-providers/types'
8+
import { Telemetry } from '@masknet/web3-telemetry'
9+
import { EventID, EventType } from '@masknet/web3-telemetry/types'
310
import { useCallback, useContext } from 'react'
411
import * as web3_utils from /* webpackDefer: true */ 'web3-utils'
5-
import { CompositionTypeContext } from '../RedPacketInjection.js'
6-
import { useChainContext } from '@masknet/web3-hooks-base'
7-
import type { NetworkPluginID } from '@masknet/shared-base'
812
import { openComposition } from '../openComposition.js'
9-
import { RedPacketMetaKey } from '@masknet/plugin-redpacket'
13+
import { CompositionTypeContext } from '../RedPacketInjection.js'
1014
import { reduceUselessPayloadInfo } from '../utils/reduceUselessPayloadInfo.js'
11-
import { Telemetry } from '@masknet/web3-telemetry'
12-
import { EventID, EventType } from '@masknet/web3-telemetry/types'
13-
import { ApplicationBoardModal } from '@masknet/shared'
1415

1516
interface Options {
1617
isFirefly?: boolean
@@ -51,11 +52,20 @@ export function useHandleCreateOrSelect({ isFirefly, senderName, onClose }: Opti
5152
payload.sender.name === senderName
5253
}
5354

54-
openComposition(RedPacketMetaKey, reduceUselessPayloadInfo(payload), compositionType, {
55-
payloadImage,
56-
claimRequirements,
57-
publicKey,
58-
})
55+
const post = t`Hi friends, I just created a token Lucky Drop. Download mask.io to claim. Follow @realMaskNetwork for Web3 updates and insights.
56+
57+
🧧🧧🧧 Try sending Lucky Drop to your friends with Mask io.`
58+
openComposition(
59+
RedPacketMetaKey,
60+
reduceUselessPayloadInfo(payload),
61+
compositionType,
62+
{
63+
payloadImage,
64+
claimRequirements,
65+
publicKey,
66+
},
67+
post,
68+
)
5969
Telemetry.captureEvent(EventType.Access, EventID.EntryAppLuckCreate)
6070
ApplicationBoardModal.close()
6171
onClose?.()

packages/plugins/RedPacket/src/SiteAdaptor/openComposition.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
import { CrossIsolationMessages } from '@masknet/shared-base'
2+
import { makeTypedMessageText } from '@masknet/typed-message'
23

34
export function openComposition(
45
metadataKey: string,
56
payload: unknown,
67
reason: 'popup' | 'timeline' = 'timeline',
78
extraMeta?: unknown,
9+
content?: string,
810
) {
911
// Close the duplicated dialog if already opened by clicking the mask compose icon.
1012
CrossIsolationMessages.events.compositionDialogEvent.sendToLocal({ reason: 'popup', open: false })
1113
CrossIsolationMessages.events.compositionDialogEvent.sendToLocal({
1214
reason,
1315
open: true,
16+
content: content ? makeTypedMessageText(content) : undefined,
1417
options: {
1518
initialMeta: {
1619
[metadataKey]: payload,

packages/plugins/RedPacket/src/locale/en-US.json

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)