Skip to content

Commit 0016e61

Browse files
authored
feat: mf-6146 merge lens/farcaster badges (#11931)
1 parent 8666a82 commit 0016e61

File tree

37 files changed

+270
-806
lines changed

37 files changed

+270
-806
lines changed

cspell.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,5 +236,6 @@
236236
],
237237
"ignoreRegExpList": ["/[A-Za-z0-9]{44}/", "/[A-Za-z0-9]{46}/", "/[A-Za-z0-9]{59}/"],
238238
"overrides": [],
239-
"words": []
239+
"words": ["endregion"]
240240
}
241+

packages/mask/content-script/site-adaptor-infra/ui.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ export async function activateSiteAdaptorUIInner(ui_deferred: SiteAdaptorUI.Defe
9696
ui.injection.userAvatar?.(signal)
9797
ui.injection.profileAvatar?.(signal)
9898
ui.injection.tips?.(signal)
99-
ui.injection.nameWidget?.(signal)
100-
ui.injection.farcaster?.(signal)
101-
ui.injection.lens?.(signal)
99+
ui.injection.badges?.(signal)
102100

103101
ui.injection.enhancedProfileNFTAvatar?.(signal)
104102
ui.injection.openNFTAvatar?.(signal)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { injectBadgesOnConversation } from './injectBadgesOnConversation.js'
2+
import { injectBadgesOnPost } from './injectBadgesOnPost.js'
3+
import { injectBadgesOnProfile } from './injectBadgesOnProfile.js'
4+
import { injectBadgesOnSpaceDock } from './injectBadgesOnSpaceDock.js'
5+
import { injectBadgesOnUserCell } from './injectBadgesOnUserCell.js'
6+
7+
export function injectBadges(signal: AbortSignal) {
8+
injectBadgesOnProfile(signal)
9+
injectBadgesOnPost(signal)
10+
injectBadgesOnUserCell(signal)
11+
injectBadgesOnConversation(signal)
12+
injectBadgesOnSpaceDock(signal)
13+
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ function createRootElement() {
4242
return span
4343
}
4444

45-
const ConversationFarcasterSlot = memo(function ConversationFarcasterSlot({ userId }: Props) {
45+
const ConversationBadgesSlot = memo(function ConversationBadgesSlot({ userId }: Props) {
4646
const [disabled, setDisabled] = useState(true)
4747
const { classes, cx } = useStyles()
4848

4949
const component = useMemo(() => {
5050
const Component = createInjectHooksRenderer(
5151
useActivatedPluginsSiteAdaptor.visibility.useNotMinimalMode,
52-
(plugin) => plugin.Farcaster?.UI?.Content,
52+
(plugin) => plugin.Badges?.UI?.Content,
5353
undefined,
5454
createRootElement,
5555
)
@@ -59,7 +59,7 @@ const ConversationFarcasterSlot = memo(function ConversationFarcasterSlot({ user
5959
return (
6060
<Component
6161
identity={identifier}
62-
slot={Plugin.SiteAdaptor.FarcasterSlot.Sidebar}
62+
slot={Plugin.SiteAdaptor.BadgesSlot.Sidebar}
6363
onStatusUpdate={setDisabled}
6464
/>
6565
)
@@ -73,7 +73,7 @@ const ConversationFarcasterSlot = memo(function ConversationFarcasterSlot({ user
7373
/**
7474
* Inject on conversation, including both DM drawer and message page (/messages/xxx)
7575
*/
76-
export function injectFarcasterOnConversation(signal: AbortSignal) {
76+
export function injectBadgesOnConversation(signal: AbortSignal) {
7777
const watcher = new MutationObserverWatcher(selector())
7878
startWatch(watcher, signal)
7979
watcher.useForeach((node, _, proxy) => {
@@ -90,7 +90,7 @@ export function injectFarcasterOnConversation(signal: AbortSignal) {
9090
}, '')
9191
if (!userId) return
9292
attachReactTreeWithContainer(proxy.afterShadow, { signal, untilVisible: true }).render(
93-
<ConversationFarcasterSlot userId={userId} />,
93+
<ConversationBadgesSlot userId={userId} />,
9494
)
9595
})
9696
}

packages/mask/content-script/site-adaptors/twitter.com/injection/Lens/injectLensOnPost.tsx renamed to packages/mask/content-script/site-adaptors/twitter.com/injection/Badges/injectBadgesOnPost.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function selector() {
1414
}
1515

1616
// structure: <user-name> <user-id> <timestamp>
17-
export function injectLensOnPost(signal: AbortSignal) {
17+
export function injectBadgesOnPost(signal: AbortSignal) {
1818
const watcher = new MutationObserverWatcher(selector())
1919
startWatch(watcher, signal)
2020
watcher.useForeach((node, _, proxy) => {
@@ -26,7 +26,7 @@ export function injectLensOnPost(signal: AbortSignal) {
2626
const userId = href?.split('/')[1]
2727
if (!userId) return
2828
attachReactTreeWithContainer(proxy.afterShadow, { signal, untilVisible: true }).render(
29-
<PostLensSlot userId={userId} />,
29+
<PostBadgesSlot userId={userId} />,
3030
)
3131
})
3232
}
@@ -58,21 +58,23 @@ function createRootElement() {
5858
})
5959
return span
6060
}
61-
function PostLensSlot({ userId }: Props) {
61+
function PostBadgesSlot({ userId }: Props) {
6262
const [disabled, setDisabled] = useState(true)
6363
const { classes, cx } = useStyles()
6464

6565
const component = useMemo(() => {
6666
const Component = createInjectHooksRenderer(
6767
useActivatedPluginsSiteAdaptor.visibility.useNotMinimalMode,
68-
(plugin) => plugin.Lens?.UI?.Content,
68+
(plugin) => plugin.Badges?.UI?.Content,
6969
undefined,
7070
createRootElement,
7171
)
7272
const identifier = ProfileIdentifier.of(EnhanceableSite.Twitter, userId).unwrap()
7373
if (!identifier) return null
7474

75-
return <Component identity={identifier} slot={Plugin.SiteAdaptor.LensSlot.Post} onStatusUpdate={setDisabled} />
75+
return (
76+
<Component identity={identifier} slot={Plugin.SiteAdaptor.BadgesSlot.Post} onStatusUpdate={setDisabled} />
77+
)
7678
}, [userId])
7779

7880
if (!component) return null

packages/mask/content-script/site-adaptors/twitter.com/injection/Lens/injectLensOnProfile.tsx renamed to packages/mask/content-script/site-adaptors/twitter.com/injection/Badges/injectBadgesOnProfile.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ function selector() {
1111
return querySelector<HTMLElement>('[data-testid=UserName] div[dir]')
1212
}
1313

14-
export function injectLensOnProfile(signal: AbortSignal) {
14+
export function injectBadgesOnProfile(signal: AbortSignal) {
1515
const watcher = new MutationObserverWatcher(selector())
1616
startWatch(watcher, signal)
17-
attachReactTreeWithContainer(watcher.firstDOMProxy.afterShadow, { signal }).render(<ProfileLensSlot />)
17+
attachReactTreeWithContainer(watcher.firstDOMProxy.afterShadow, { signal }).render(<ProfileBadgesSlot />)
1818
}
1919

2020
const useStyles = makeStyles()((theme) => ({
@@ -32,21 +32,21 @@ const useStyles = makeStyles()((theme) => ({
3232
},
3333
}))
3434

35-
function ProfileLensSlot() {
35+
function ProfileBadgesSlot() {
3636
const visitingIdentity = useCurrentVisitingIdentity()
3737
const [disabled, setDisabled] = useState(true)
3838
const { classes, cx } = useStyles()
3939

4040
const component = useMemo(() => {
4141
const Component = createInjectHooksRenderer(
4242
useActivatedPluginsSiteAdaptor.visibility.useNotMinimalMode,
43-
(plugin) => plugin.Lens?.UI?.Content,
43+
(plugin) => plugin.Badges?.UI?.Content,
4444
)
4545

4646
return (
4747
<Component
4848
identity={visitingIdentity.identifier}
49-
slot={Plugin.SiteAdaptor.LensSlot.ProfileName}
49+
slot={Plugin.SiteAdaptor.BadgesSlot.ProfileName}
5050
onStatusUpdate={setDisabled}
5151
/>
5252
)
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function avatarSelector() {
1919
/**
2020
* Inject on space dock
2121
*/
22-
export function injectFarcasterOnSpaceDock(signal: AbortSignal) {
22+
export function injectBadgesOnSpaceDock(signal: AbortSignal) {
2323
const watcher = new MutationObserverWatcher(avatarSelector())
2424
startWatch(watcher, signal)
2525
watcher.useForeach((node, _, proxy) => {
@@ -30,7 +30,7 @@ export function injectFarcasterOnSpaceDock(signal: AbortSignal) {
3030
const userId = avatar.dataset.testid?.slice('UserAvatar-Container-'.length)
3131
if (!userId) return
3232
attachReactTreeWithContainer(proxy.afterShadow, { signal, untilVisible: true }).render(
33-
<SpaceDockFarcasterSlot userId={userId} />,
33+
<SpaceDockBadgesSlot userId={userId} />,
3434
)
3535
})
3636
}
@@ -66,14 +66,14 @@ function createRootElement() {
6666
return span
6767
}
6868

69-
function SpaceDockFarcasterSlot({ userId }: Props) {
69+
function SpaceDockBadgesSlot({ userId }: Props) {
7070
const [disabled, setDisabled] = useState(true)
7171
const { classes, cx } = useStyles()
7272

7373
const component = useMemo(() => {
7474
const Component = createInjectHooksRenderer(
7575
useActivatedPluginsSiteAdaptor.visibility.useNotMinimalMode,
76-
(plugin) => plugin.Farcaster?.UI?.Content,
76+
(plugin) => plugin.Badges?.UI?.Content,
7777
undefined,
7878
createRootElement,
7979
)
@@ -83,7 +83,7 @@ function SpaceDockFarcasterSlot({ userId }: Props) {
8383
return (
8484
<Component
8585
identity={identifier}
86-
slot={Plugin.SiteAdaptor.FarcasterSlot.Sidebar}
86+
slot={Plugin.SiteAdaptor.BadgesSlot.Sidebar}
8787
onStatusUpdate={setDisabled}
8888
/>
8989
)
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ function selector() {
1717
/**
1818
* Inject on sidebar user cell
1919
*/
20-
export function injectFarcasterOnUserCell(signal: AbortSignal) {
20+
export function injectBadgesOnUserCell(signal: AbortSignal) {
2121
const watcher = new MutationObserverWatcher(selector())
2222
startWatch(watcher, signal)
2323
watcher.useForeach((node, _, proxy) => {
2424
const userId = node.closest('[role=link]')?.getAttribute('href')?.slice(1)
2525
if (!userId) return
2626
// Intended to set `untilVisible` to true, but mostly user cells are fixed and visible
27-
attachReactTreeWithContainer(proxy.afterShadow, { signal }).render(<UserCellFarcasterSlot userId={userId} />)
27+
attachReactTreeWithContainer(proxy.afterShadow, { signal }).render(<UserCellBadgesSlot userId={userId} />)
2828
})
2929
}
3030

@@ -59,14 +59,14 @@ function createRootElement() {
5959
return span
6060
}
6161

62-
function UserCellFarcasterSlot({ userId }: Props) {
62+
function UserCellBadgesSlot({ userId }: Props) {
6363
const [disabled, setDisabled] = useState(true)
6464
const { classes, cx } = useStyles()
6565

6666
const component = useMemo(() => {
6767
const Component = createInjectHooksRenderer(
6868
useActivatedPluginsSiteAdaptor.visibility.useNotMinimalMode,
69-
(plugin) => plugin.Farcaster?.UI?.Content,
69+
(plugin) => plugin.Badges?.UI?.Content,
7070
undefined,
7171
createRootElement,
7272
)
@@ -77,7 +77,7 @@ function UserCellFarcasterSlot({ userId }: Props) {
7777
return (
7878
<Component
7979
identity={identifier}
80-
slot={Plugin.SiteAdaptor.FarcasterSlot.Sidebar}
80+
slot={Plugin.SiteAdaptor.BadgesSlot.Sidebar}
8181
onStatusUpdate={setDisabled}
8282
/>
8383
)

packages/mask/content-script/site-adaptors/twitter.com/injection/Farcaster/index.tsx

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/mask/content-script/site-adaptors/twitter.com/injection/Farcaster/injectFarcasterOnPost.tsx

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)