Skip to content

Commit a578527

Browse files
committed
feat: add support for lens social network integration
1 parent e6855a9 commit a578527

File tree

15 files changed

+43
-22
lines changed

15 files changed

+43
-22
lines changed

packages/mask/popups/components/SocialAccounts/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export const SocialAccounts = memo<SocialAccountsProps>(function SocialAccounts(
9191
<Box className={classes.accountItem} key={index} onClick={() => onAccountClick(account)}>
9292
<AccountAvatar
9393
avatar={account.avatar}
94-
network={account.identifier.network}
94+
network={account.identifier.network as EnhanceableSite}
9595
isValid={account.is_valid}
9696
classes={{ avatar: classes.avatar }}
9797
/>

packages/mask/popups/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ export const SOCIAL_MEDIA_ICON_FILTER_COLOR: Record<EnhanceableSite, string> = {
1313
[EnhanceableSite.Localhost]: '',
1414
[EnhanceableSite.Firefly]: '',
1515
[EnhanceableSite.Farcaster]: '',
16+
[EnhanceableSite.Lens]: '',
1617
}

packages/mask/popups/hooks/useSupportSocialNetworks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useQuery } from '@tanstack/react-query'
44

55
export function useSupportSocialNetworks() {
66
return useQuery({
7-
queryKey: ['@@Service.SiteAdaptor.getSupportedSites({ isSocialNetwork: true })'],
7+
queryKey: ['Service.SiteAdaptor.getSupportedSites({ isSocialNetwork: true })'],
88
queryFn: async () => {
99
const sites = await Service.SiteAdaptor.getSupportedSites({ isSocialNetwork: true })
1010
return sites.map((x) => x.networkIdentifier as EnhanceableSite)

packages/mask/popups/pages/Personas/AccountDetail/UI.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Trans } from '@lingui/react/macro'
2-
import type { BindingProof, ProfileAccount } from '@masknet/shared-base'
2+
import type { BindingProof, EnhanceableSite, ProfileAccount } from '@masknet/shared-base'
33
import { makeStyles } from '@masknet/theme'
44
import { Box, Button, Typography } from '@mui/material'
55
import { memo, useCallback } from 'react'
@@ -52,7 +52,7 @@ export const AccountDetailUI = memo<AccountDetailUIProps>(function AccountDetail
5252
<Box className={classes.account}>
5353
<AccountAvatar
5454
avatar={account.avatar}
55-
network={account.identifier.network}
55+
network={account.identifier.network as EnhanceableSite}
5656
isValid={account.is_valid}
5757
classes={{ avatar: classes.avatar }}
5858
/>

packages/mask/popups/pages/Personas/components/AccountAvatar/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const useStyles = makeStyles()((theme) => ({
4242

4343
export interface AccountAvatar extends withClasses<'avatar' | 'container'> {
4444
avatar?: string | null
45-
network?: string
45+
network?: EnhanceableSite
4646
isValid?: boolean
4747
size?: number
4848
}

packages/mask/shared/definitions/event.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const EventMap: Record<EnhanceableSite, EventID> = {
1111
[EnhanceableSite.Mirror]: EventID.Debug,
1212
[EnhanceableSite.Firefly]: EventID.Debug,
1313
[EnhanceableSite.Farcaster]: EventID.Debug,
14+
[EnhanceableSite.Lens]: EventID.Debug,
1415
}
1516

1617
export const DisconnectEventMap: Record<string, EventID> = {

packages/mask/shared/site-adaptors/definitions.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import { FacebookAdaptor } from './implementations/facebook.com.js'
2+
import { FarcasterAdaptor } from './implementations/farcaster.xyz.js'
3+
import { LensAdaptor } from './implementations/hey.xyz.js'
24
import { InstagramAdaptor } from './implementations/instagram.com.js'
35
import { MindsAdaptor } from './implementations/minds.com.js'
46
import { MirrorAdaptor } from './implementations/mirror.xyz.js'
57
import { TwitterAdaptor } from './implementations/twitter.com.js'
68
import type { SiteAdaptor } from './types.js'
7-
import { FarcasterAdaptor } from './implementations/farcaster.xyz.js'
89

9-
const defined = new Map<string, SiteAdaptor.Definition>()
10-
export const definedSiteAdaptors: ReadonlyMap<string, SiteAdaptor.Definition> = defined
11-
12-
function defineSiteAdaptor(UI: SiteAdaptor.Definition) {
13-
defined.set(UI.networkIdentifier, UI)
14-
}
15-
defineSiteAdaptor(FacebookAdaptor)
16-
defineSiteAdaptor(InstagramAdaptor)
17-
defineSiteAdaptor(MindsAdaptor)
18-
defineSiteAdaptor(MirrorAdaptor)
19-
defineSiteAdaptor(TwitterAdaptor)
20-
defineSiteAdaptor(FarcasterAdaptor)
10+
export const definedSiteAdaptors: ReadonlyMap<string, SiteAdaptor.Definition> = new Map<string, SiteAdaptor.Definition>(
11+
[
12+
[FacebookAdaptor.networkIdentifier, FacebookAdaptor],
13+
[InstagramAdaptor.networkIdentifier, InstagramAdaptor],
14+
[MindsAdaptor.networkIdentifier, MindsAdaptor],
15+
[MirrorAdaptor.networkIdentifier, MirrorAdaptor],
16+
[TwitterAdaptor.networkIdentifier, TwitterAdaptor],
17+
[FarcasterAdaptor.networkIdentifier, FarcasterAdaptor],
18+
[LensAdaptor.networkIdentifier, LensAdaptor],
19+
],
20+
)
2121

2222
function matches(url: string, pattern: string) {
2323
const l = new URL(pattern)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { EnhanceableSite } from '@masknet/shared-base'
2+
import type { SiteAdaptor } from '../types.js'
3+
4+
const origins = ['https://hey.xyz/*']
5+
6+
export const LensAdaptor: SiteAdaptor.Definition = {
7+
name: 'Lens',
8+
networkIdentifier: EnhanceableSite.Lens,
9+
declarativePermissions: { origins },
10+
homepage: 'https://lens.xyz',
11+
isSocialNetwork: true,
12+
sortIndex: 1,
13+
}

packages/mask/shared/site-adaptors/types.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ProfileIdentifier } from '@masknet/shared-base'
1+
import type { EnhanceableSite, ProfileIdentifier } from '@masknet/shared-base'
22

33
// This file should be a .ts file, not a .d.ts file (that skips type checking).
44
// but this causes "because it would overwrite input file" error in incremental compiling which is annoying.
@@ -8,7 +8,7 @@ export declare namespace SiteAdaptor {
88
}
99
export interface Definition {
1010
name: string
11-
networkIdentifier: string
11+
networkIdentifier: EnhanceableSite
1212
// Note: if declarativePermissions is no longer sufficient, use "false" to indicate it need a load().
1313
declarativePermissions: DeclarativePermissions
1414
homepage: string

packages/shared-base/src/LegacySettings/settings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const pluginIDsSettings = createGlobalSettings<Record<EnhanceableSite | E
2424
[EnhanceableSite.Mirror]: NetworkPluginID.PLUGIN_EVM,
2525
[EnhanceableSite.Firefly]: NetworkPluginID.PLUGIN_EVM,
2626
[EnhanceableSite.Farcaster]: NetworkPluginID.PLUGIN_EVM,
27+
[EnhanceableSite.Lens]: NetworkPluginID.PLUGIN_EVM,
2728
[ExtensionSite.Popup]: NetworkPluginID.PLUGIN_EVM,
2829
[ExtensionSite.Dashboard]: NetworkPluginID.PLUGIN_EVM,
2930
[ExtensionSite.Swap]: NetworkPluginID.PLUGIN_EVM,

0 commit comments

Comments
 (0)