From bccc4fd2a060c3bf11bd4bc2b21f9286644a4771 Mon Sep 17 00:00:00 2001 From: guanbinrui Date: Wed, 23 Jun 2021 11:21:23 +0800 Subject: [PATCH 1/3] refactor: migrate airdrop plugin --- .../maskbook/src/plugin-infra/register.ts | 3 +- .../Airdrop/{UI => SNSAdaptor}/Airdrop.tsx | 0 .../{UI => SNSAdaptor}/AirdropCard.tsx | 0 .../{UI => SNSAdaptor}/AirdropCheckCard.tsx | 0 .../{UI => SNSAdaptor}/AirdropClaimCard.tsx | 0 .../{UI => SNSAdaptor}/ClaimDialog.tsx | 0 .../{UI => SNSAdaptor}/CompositionDialog.tsx | 0 .../src/plugins/Airdrop/SNSAdaptor/index.tsx | 36 +++++++++++++++ .../src/plugins/Airdrop/Worker/index.ts | 9 ++++ packages/maskbook/src/plugins/Airdrop/base.ts | 15 ++++++ .../maskbook/src/plugins/Airdrop/constants.ts | 7 ++- .../maskbook/src/plugins/Airdrop/define.tsx | 46 ------------------- .../maskbook/src/plugins/Airdrop/helpers.ts | 4 +- .../plugins/Airdrop/hooks/useAirdropPacket.ts | 4 +- .../plugins/Airdrop/hooks/useCheckCallback.ts | 4 +- .../maskbook/src/plugins/Airdrop/index.ts | 17 +++++++ .../maskbook/src/plugins/Airdrop/messages.ts | 11 +++-- packages/maskbook/src/plugins/PluginUI.ts | 2 - packages/maskbook/src/utils/flags.ts | 2 - 19 files changed, 98 insertions(+), 62 deletions(-) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/Airdrop.tsx (100%) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/AirdropCard.tsx (100%) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/AirdropCheckCard.tsx (100%) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/AirdropClaimCard.tsx (100%) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/ClaimDialog.tsx (100%) rename packages/maskbook/src/plugins/Airdrop/{UI => SNSAdaptor}/CompositionDialog.tsx (100%) create mode 100644 packages/maskbook/src/plugins/Airdrop/SNSAdaptor/index.tsx create mode 100644 packages/maskbook/src/plugins/Airdrop/Worker/index.ts create mode 100644 packages/maskbook/src/plugins/Airdrop/base.ts delete mode 100644 packages/maskbook/src/plugins/Airdrop/define.tsx create mode 100644 packages/maskbook/src/plugins/Airdrop/index.ts diff --git a/packages/maskbook/src/plugin-infra/register.ts b/packages/maskbook/src/plugin-infra/register.ts index 58fa300cc527..4d611e274aa6 100644 --- a/packages/maskbook/src/plugin-infra/register.ts +++ b/packages/maskbook/src/plugin-infra/register.ts @@ -5,5 +5,6 @@ import '@dimensiondev/plugin-example' import '../plugins/RedPacket' import '../plugins/Snapshot' import '../plugins/Collectible' -// import '../plugins/NFT' import '../plugins/External' +// import '../plugins/NFT' +// import '../plugins/Airdrop' diff --git a/packages/maskbook/src/plugins/Airdrop/UI/Airdrop.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/Airdrop.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/Airdrop.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/Airdrop.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/UI/AirdropCard.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropCard.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/AirdropCard.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropCard.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/UI/AirdropCheckCard.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropCheckCard.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/AirdropCheckCard.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropCheckCard.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/UI/AirdropClaimCard.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropClaimCard.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/AirdropClaimCard.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/AirdropClaimCard.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/UI/ClaimDialog.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/ClaimDialog.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/ClaimDialog.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/ClaimDialog.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/UI/CompositionDialog.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/CompositionDialog.tsx similarity index 100% rename from packages/maskbook/src/plugins/Airdrop/UI/CompositionDialog.tsx rename to packages/maskbook/src/plugins/Airdrop/SNSAdaptor/CompositionDialog.tsx diff --git a/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/index.tsx b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/index.tsx new file mode 100644 index 000000000000..480aa1d2dc84 --- /dev/null +++ b/packages/maskbook/src/plugins/Airdrop/SNSAdaptor/index.tsx @@ -0,0 +1,36 @@ +import type { Plugin } from '@dimensiondev/mask-plugin-infra' +import MaskbookPluginWrapper from '../../MaskbookPluginWrapper' +import { base } from '../base' +import { AirdropMetadataReader } from '../helpers' +import { Airdrop } from './Airdrop' +import type { AirdropJSONPayload } from '../types' +import { PLUGIN_NAME, PLUGIN_META_KEY } from '../constants' +import { CompositionDialog } from './CompositionDialog' + +const sns: Plugin.SNSAdaptor.Definition = { + ...base, + init(signal) {}, + DecryptedInspector: function Comp(props) { + const payload = AirdropMetadataReader(props.message.meta) + if (!payload.ok) return null + return ( + + + + ) + }, + CompositionDialogMetadataBadgeRender: new Map([ + [ + PLUGIN_META_KEY, + (payload: AirdropJSONPayload) => { + return PLUGIN_NAME + }, + ], + ]), + CompositionDialogEntry: { + label: `🪂 ${PLUGIN_NAME}`, + dialog: CompositionDialog, + }, +} + +export default sns diff --git a/packages/maskbook/src/plugins/Airdrop/Worker/index.ts b/packages/maskbook/src/plugins/Airdrop/Worker/index.ts new file mode 100644 index 000000000000..4838783d7aa5 --- /dev/null +++ b/packages/maskbook/src/plugins/Airdrop/Worker/index.ts @@ -0,0 +1,9 @@ +import type { Plugin } from '@dimensiondev/mask-plugin-infra' +import { base } from '../base' +import '../messages' + +const worker: Plugin.Worker.Definition = { + ...base, + init(signal) {}, +} +export default worker diff --git a/packages/maskbook/src/plugins/Airdrop/base.ts b/packages/maskbook/src/plugins/Airdrop/base.ts new file mode 100644 index 000000000000..757cad82b7fd --- /dev/null +++ b/packages/maskbook/src/plugins/Airdrop/base.ts @@ -0,0 +1,15 @@ +import type { Plugin } from '@dimensiondev/mask-plugin-infra' +import { PLUGIN_ID, PLUGIN_ICON, PLUGIN_NAME, PLUGIN_DESCRIPTION } from './constants' + +export const base: Plugin.Shared.Definition = { + ID: PLUGIN_ID, + icon: PLUGIN_ICON, + name: { fallback: PLUGIN_NAME }, + description: { fallback: PLUGIN_DESCRIPTION }, + publisher: { name: { fallback: 'Mask Network' }, link: 'https://mask.io/' }, + enableRequirement: { + architecture: { app: false, web: true }, + networks: { type: 'opt-out', networks: {} }, + target: 'insider', + }, +} diff --git a/packages/maskbook/src/plugins/Airdrop/constants.ts b/packages/maskbook/src/plugins/Airdrop/constants.ts index 2c86d1c09081..b55cdc9e50d0 100644 --- a/packages/maskbook/src/plugins/Airdrop/constants.ts +++ b/packages/maskbook/src/plugins/Airdrop/constants.ts @@ -1,7 +1,10 @@ import { ChainId } from '@dimensiondev/web3-shared' -export const AirdropMetaKey = 'com.maskbook.airdrop:1' -export const AirdropPluginID = 'com.maskbook.airdrop' +export const PLUGIN_META_KEY = 'com.maskbook.airdrop:1' +export const PLUGIN_ID = 'com.maskbook.airdrop' +export const PLUGIN_NAME = 'Airdrop' +export const PLUGIN_ICON = '🪂' +export const PLUGIN_DESCRIPTION = '' export const AIRDROP_CONSTANTS = { AIRDROP_CONTRACT_ADDRESS: { diff --git a/packages/maskbook/src/plugins/Airdrop/define.tsx b/packages/maskbook/src/plugins/Airdrop/define.tsx deleted file mode 100644 index 4de6f108f4ed..000000000000 --- a/packages/maskbook/src/plugins/Airdrop/define.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { SnackbarContent } from '@material-ui/core' -import { Suspense } from 'react' -import MaskbookPluginWrapper from '../MaskbookPluginWrapper' -import { AirdropMetaKey, AirdropPluginID } from './constants' -import { AirdropMetadataReader } from './helpers' -import type { AirdropJSONPayload } from './types' -import { createCompositionDialog } from '../utils/createCompositionDialog' -import { CompositionDialog } from './UI/CompositionDialog' -import { Flags } from '../../utils/flags' -import { PluginConfig, PluginScope, PluginStage } from '../types' -import { Airdrop } from './UI/Airdrop' - -const [AirdropCompositionEntry, AirdropCompositionUI] = createCompositionDialog('🪂 Airdrop', (props) => ( - -)) - -export const AirdropPluginDefine: PluginConfig = { - id: AirdropPluginID, - pluginIcon: '🪂', - pluginName: 'Airdrop', - pluginDescription: '', - identifier: AirdropPluginID, - stage: PluginStage.Production, - scope: PluginScope.Internal, - successDecryptionInspector: function Comp(props) { - const payload = AirdropMetadataReader(props.message.meta) - if (!payload.ok) return null - return ( - - }> - - - - ) - }, - postDialogMetadataBadge: new Map([ - [ - AirdropMetaKey, - (payload: AirdropJSONPayload) => { - return 'Airdrop' - }, - ], - ]), - PageComponent: Flags.airdrop_composition_dialog_enabled ? AirdropCompositionUI : undefined, - postDialogEntries: Flags.airdrop_composition_dialog_enabled ? [AirdropCompositionEntry] : undefined, -} diff --git a/packages/maskbook/src/plugins/Airdrop/helpers.ts b/packages/maskbook/src/plugins/Airdrop/helpers.ts index 7560e98263b1..6532cab9da4a 100644 --- a/packages/maskbook/src/plugins/Airdrop/helpers.ts +++ b/packages/maskbook/src/plugins/Airdrop/helpers.ts @@ -1,7 +1,7 @@ import { createTypedMessageMetadataReader, createRenderWithMetadata } from '../../protocols/typed-message/metadata' -import { AirdropMetaKey } from './constants' +import { PLUGIN_META_KEY } from './constants' import type { AirdropJSONPayload } from './types' import schema from './schema.json' -export const AirdropMetadataReader = createTypedMessageMetadataReader(AirdropMetaKey, schema) +export const AirdropMetadataReader = createTypedMessageMetadataReader(PLUGIN_META_KEY, schema) export const renderWithAirdropMetadata = createRenderWithMetadata(AirdropMetadataReader) diff --git a/packages/maskbook/src/plugins/Airdrop/hooks/useAirdropPacket.ts b/packages/maskbook/src/plugins/Airdrop/hooks/useAirdropPacket.ts index 18a0ca202505..a867c1cdb944 100644 --- a/packages/maskbook/src/plugins/Airdrop/hooks/useAirdropPacket.ts +++ b/packages/maskbook/src/plugins/Airdrop/hooks/useAirdropPacket.ts @@ -1,9 +1,9 @@ import { useAsyncRetry } from 'react-use' -import { PluginAirdropRPC } from '../messages' +import { AirdropRPC } from '../messages' export function useAirdropPacket(address: string) { return useAsyncRetry(async () => { if (!address) return - return PluginAirdropRPC.getMaskAirdropPacket(address) + return AirdropRPC.getMaskAirdropPacket(address) }, [address]) } diff --git a/packages/maskbook/src/plugins/Airdrop/hooks/useCheckCallback.ts b/packages/maskbook/src/plugins/Airdrop/hooks/useCheckCallback.ts index cb3a3e97e2b3..7e5f102ee0b6 100644 --- a/packages/maskbook/src/plugins/Airdrop/hooks/useCheckCallback.ts +++ b/packages/maskbook/src/plugins/Airdrop/hooks/useCheckCallback.ts @@ -4,7 +4,7 @@ import { EthereumAddress } from 'wallet.ts' import { formatEthereumAddress, isGreaterThan, ONE } from '@dimensiondev/maskbook-shared' import type { AirdropPacket } from '../apis' import { useAirdropContract } from '../contracts/useAirdropContract' -import { PluginAirdropRPC } from '../messages' +import { AirdropRPC } from '../messages' export enum CheckStateType { UNKNOWN, @@ -66,7 +66,7 @@ export function useCheckCallback() { const address_ = formatEthereumAddress(checkAddress.trim()) // read airdrop packet - const packet = await PluginAirdropRPC.getMaskAirdropPacket(address_) + const packet = await AirdropRPC.getMaskAirdropPacket(address_) if (!packet) { setCheckState({ type: CheckStateType.FAILED, diff --git a/packages/maskbook/src/plugins/Airdrop/index.ts b/packages/maskbook/src/plugins/Airdrop/index.ts new file mode 100644 index 000000000000..69a353f163b6 --- /dev/null +++ b/packages/maskbook/src/plugins/Airdrop/index.ts @@ -0,0 +1,17 @@ +import { registerPlugin } from '@dimensiondev/mask-plugin-infra' +import { base } from './base' + +registerPlugin({ + ...base, + SNSAdaptor: { + load: () => import('./SNSAdaptor'), + hotModuleReload: (hot) => + import.meta.webpackHot && + import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + }, + Worker: { + load: () => import('./Worker'), + hotModuleReload: (hot) => + import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + }, +}) diff --git a/packages/maskbook/src/plugins/Airdrop/messages.ts b/packages/maskbook/src/plugins/Airdrop/messages.ts index 78745560a201..1239e02c35b6 100644 --- a/packages/maskbook/src/plugins/Airdrop/messages.ts +++ b/packages/maskbook/src/plugins/Airdrop/messages.ts @@ -1,7 +1,12 @@ +import type { WebExtensionMessage } from '@dimensiondev/holoflows-kit' import { createPluginMessage } from '../utils/createPluginMessage' import { createPluginRPC } from '../utils/createPluginRPC' -import { AirdropPluginID } from './constants' +import { PLUGIN_ID } from './constants' + +export interface AirdropMessages { + _: unknown +} if (import.meta.webpackHot) import.meta.webpackHot.accept() -export const AirdropMessage = createPluginMessage<{ _: unknown }>(AirdropPluginID) -export const PluginAirdropRPC = createPluginRPC(AirdropPluginID, () => import('./services'), AirdropMessage.events._) +export const AirdropMessage: WebExtensionMessage = createPluginMessage<{ _: unknown }>(PLUGIN_ID) +export const AirdropRPC = createPluginRPC(PLUGIN_ID, () => import('./services'), AirdropMessage.events._) diff --git a/packages/maskbook/src/plugins/PluginUI.ts b/packages/maskbook/src/plugins/PluginUI.ts index 0b5bc4bff1a2..06ff48a71b7b 100644 --- a/packages/maskbook/src/plugins/PluginUI.ts +++ b/packages/maskbook/src/plugins/PluginUI.ts @@ -16,7 +16,6 @@ import { FileServicePluginDefine } from './FileService/UI-define' import { TraderPluginDefine } from './Trader/define' import { TransakPluginDefine } from './Transak/define' import { ITO_PluginDefine } from './ITO/define' -import { AirdropPluginDefine } from './Airdrop/define' import { sideEffect } from '../utils/side-effects' import { VCentPluginDefine } from './VCent/define' import { DHedgePluginDefine } from './dHEDGE/define' @@ -31,7 +30,6 @@ sideEffect.then(() => { if (Flags.poll_enabled) plugins.add(PollsPluginDefine) if (Flags.trader_enabled) plugins.add(TraderPluginDefine) if (Flags.transak_enabled) plugins.add(TransakPluginDefine) - if (Flags.airdrop_enabled) plugins.add(AirdropPluginDefine) if (Flags.dhedge_enabled) plugins.add(DHedgePluginDefine) if (process.env.STORYBOOK) plugins.add(StorybookPluginDefine) }) diff --git a/packages/maskbook/src/utils/flags.ts b/packages/maskbook/src/utils/flags.ts index 8e2f1303cca7..02dae7ac225e 100644 --- a/packages/maskbook/src/utils/flags.ts +++ b/packages/maskbook/src/utils/flags.ts @@ -40,8 +40,6 @@ export const Flags = { election2020_enabled: webOnly, election2020_composition_dialog_enabled: false, dhedge_enabled: webOnly, - airdrop_enabled: webOnly, - airdrop_composition_dialog_enabled: false, snapshot_enabled: webOnly, metamask_support_enabled: webOnly, toolbar_enabled: webOnly, From d70366f6b084869c17719fee144b5dec4225fe90 Mon Sep 17 00:00:00 2001 From: guanbinrui Date: Wed, 23 Jun 2021 11:33:53 +0800 Subject: [PATCH 2/3] refactor: code style --- packages/maskbook/src/plugins/Airdrop/index.ts | 3 +-- packages/maskbook/src/plugins/Collectible/index.ts | 3 +-- packages/maskbook/src/plugins/RedPacket/index.ts | 3 +-- packages/maskbook/src/plugins/Snapshot/index.ts | 3 +-- packages/plugins/example/src/index.ts | 10 +++------- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/packages/maskbook/src/plugins/Airdrop/index.ts b/packages/maskbook/src/plugins/Airdrop/index.ts index 69a353f163b6..b43345b6af1f 100644 --- a/packages/maskbook/src/plugins/Airdrop/index.ts +++ b/packages/maskbook/src/plugins/Airdrop/index.ts @@ -6,8 +6,7 @@ registerPlugin({ SNSAdaptor: { load: () => import('./SNSAdaptor'), hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + import.meta.webpackHot?.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), }, Worker: { load: () => import('./Worker'), diff --git a/packages/maskbook/src/plugins/Collectible/index.ts b/packages/maskbook/src/plugins/Collectible/index.ts index 69a353f163b6..b43345b6af1f 100644 --- a/packages/maskbook/src/plugins/Collectible/index.ts +++ b/packages/maskbook/src/plugins/Collectible/index.ts @@ -6,8 +6,7 @@ registerPlugin({ SNSAdaptor: { load: () => import('./SNSAdaptor'), hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + import.meta.webpackHot?.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), }, Worker: { load: () => import('./Worker'), diff --git a/packages/maskbook/src/plugins/RedPacket/index.ts b/packages/maskbook/src/plugins/RedPacket/index.ts index 69a353f163b6..b43345b6af1f 100644 --- a/packages/maskbook/src/plugins/RedPacket/index.ts +++ b/packages/maskbook/src/plugins/RedPacket/index.ts @@ -6,8 +6,7 @@ registerPlugin({ SNSAdaptor: { load: () => import('./SNSAdaptor'), hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + import.meta.webpackHot?.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), }, Worker: { load: () => import('./Worker'), diff --git a/packages/maskbook/src/plugins/Snapshot/index.ts b/packages/maskbook/src/plugins/Snapshot/index.ts index 69a353f163b6..b43345b6af1f 100644 --- a/packages/maskbook/src/plugins/Snapshot/index.ts +++ b/packages/maskbook/src/plugins/Snapshot/index.ts @@ -6,8 +6,7 @@ registerPlugin({ SNSAdaptor: { load: () => import('./SNSAdaptor'), hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + import.meta.webpackHot?.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), }, Worker: { load: () => import('./Worker'), diff --git a/packages/plugins/example/src/index.ts b/packages/plugins/example/src/index.ts index b528d712d20f..3f99a7f94d7e 100644 --- a/packages/plugins/example/src/index.ts +++ b/packages/plugins/example/src/index.ts @@ -6,18 +6,14 @@ registerPlugin({ SNSAdaptor: { load: () => import('./SNSAdaptor'), hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), + import.meta.webpackHot?.accept('./SNSAdaptor/index', () => hot(import('./SNSAdaptor'))), }, Dashboard: { load: () => import('./Dashboard'), - hotModuleReload: (hot) => - import.meta.webpackHot && - import.meta.webpackHot.accept('./Dashboard/index', () => hot(import('./Dashboard'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Dashboard/index', () => hot(import('./Dashboard'))), }, Worker: { load: () => import('./Worker'), - hotModuleReload: (hot) => - import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Worker/index', () => hot(import('./Worker'))), }, }) From e5a69a416f2485de21c1ac6609a0f31c36eff01a Mon Sep 17 00:00:00 2001 From: guanbinrui Date: Wed, 23 Jun 2021 11:35:52 +0800 Subject: [PATCH 3/3] refactor: code style --- packages/maskbook/src/plugins/Airdrop/index.ts | 3 +-- packages/maskbook/src/plugins/Collectible/index.ts | 3 +-- packages/maskbook/src/plugins/RedPacket/index.ts | 3 +-- packages/maskbook/src/plugins/Snapshot/index.ts | 3 +-- packages/plugin-infra/src/types.ts | 4 ++-- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/maskbook/src/plugins/Airdrop/index.ts b/packages/maskbook/src/plugins/Airdrop/index.ts index b43345b6af1f..edcc09618b15 100644 --- a/packages/maskbook/src/plugins/Airdrop/index.ts +++ b/packages/maskbook/src/plugins/Airdrop/index.ts @@ -10,7 +10,6 @@ registerPlugin({ }, Worker: { load: () => import('./Worker'), - hotModuleReload: (hot) => - import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Worker/index', () => hot(import('./Worker'))), }, }) diff --git a/packages/maskbook/src/plugins/Collectible/index.ts b/packages/maskbook/src/plugins/Collectible/index.ts index b43345b6af1f..edcc09618b15 100644 --- a/packages/maskbook/src/plugins/Collectible/index.ts +++ b/packages/maskbook/src/plugins/Collectible/index.ts @@ -10,7 +10,6 @@ registerPlugin({ }, Worker: { load: () => import('./Worker'), - hotModuleReload: (hot) => - import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Worker/index', () => hot(import('./Worker'))), }, }) diff --git a/packages/maskbook/src/plugins/RedPacket/index.ts b/packages/maskbook/src/plugins/RedPacket/index.ts index b43345b6af1f..edcc09618b15 100644 --- a/packages/maskbook/src/plugins/RedPacket/index.ts +++ b/packages/maskbook/src/plugins/RedPacket/index.ts @@ -10,7 +10,6 @@ registerPlugin({ }, Worker: { load: () => import('./Worker'), - hotModuleReload: (hot) => - import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Worker/index', () => hot(import('./Worker'))), }, }) diff --git a/packages/maskbook/src/plugins/Snapshot/index.ts b/packages/maskbook/src/plugins/Snapshot/index.ts index b43345b6af1f..edcc09618b15 100644 --- a/packages/maskbook/src/plugins/Snapshot/index.ts +++ b/packages/maskbook/src/plugins/Snapshot/index.ts @@ -10,7 +10,6 @@ registerPlugin({ }, Worker: { load: () => import('./Worker'), - hotModuleReload: (hot) => - import.meta.webpackHot && import.meta.webpackHot.accept('./Worker/index', () => hot(import('./Worker'))), + hotModuleReload: (hot) => import.meta.webpackHot?.accept('./Worker/index', () => hot(import('./Worker'))), }, }) diff --git a/packages/plugin-infra/src/types.ts b/packages/plugin-infra/src/types.ts index e55a593fec05..20691dd2b951 100644 --- a/packages/plugin-infra/src/types.ts +++ b/packages/plugin-infra/src/types.ts @@ -12,7 +12,7 @@ export namespace Plugin { * ```ts * const loader = { * load: () => import('./code'), - * hotModuleReload: hot => import.meta.webpackHot && import.meta.webpackHot.accept('./code', () => hot(import('./code'))) + * hotModuleReload: hot => import.meta.webpackHot?.accept('./code', () => hot(import('./code'))) * } * ``` * @@ -31,7 +31,7 @@ export namespace Plugin { /** * This provides the functionality for hot module reload on the plugin. * When the callback is called, the old instance of the plugin will be unloaded, then the new instance will be init. - * @example hotModuleReload: hot => import.meta.webpackHot && import.meta.webpackHot.accept('./path', () => hot(import('./path'))) + * @example hotModuleReload: hot => import.meta.webpackHot?.accept('./path', () => hot(import('./path'))) */ hotModuleReload(onHot: (hot: Promise<{ default: DeferredModule }>) => void): void }