Add more client events to profile followers/following pages (#9466)

* Add more client events to profile followers/following pages

* Remove unneeded logContext attribute
This commit is contained in:
Alex Benzer
2025-12-05 08:27:35 -08:00
committed by GitHub
parent d3878bf0ac
commit 6686ebc232
3 changed files with 91 additions and 1 deletions
+36
View File
@@ -71,6 +71,32 @@ export function ProfileFollowers({name}: {name: string}) {
return []
}, [data])
// Track pagination events - fire for page 3+ (pages 1-2 may auto-load)
const paginationTrackingRef = React.useRef<{
did: string | undefined
page: number
}>({did: undefined, page: 0})
React.useEffect(() => {
const currentPageCount = data?.pages?.length || 0
// Reset tracking when profile changes
if (paginationTrackingRef.current.did !== resolvedDid) {
paginationTrackingRef.current = {did: resolvedDid, page: currentPageCount}
return
}
if (
resolvedDid &&
currentPageCount >= 3 &&
currentPageCount > paginationTrackingRef.current.page
) {
logger.metric('profile:followers:paginate', {
contextProfileDid: resolvedDid,
itemCount: followers.length,
page: currentPageCount,
})
}
paginationTrackingRef.current.page = currentPageCount
}, [data?.pages?.length, resolvedDid, followers.length])
const onRefresh = React.useCallback(async () => {
setIsPTRing(true)
try {
@@ -96,6 +122,16 @@ export function ProfileFollowers({name}: {name: string}) {
[resolvedDid],
)
// track pageview
React.useEffect(() => {
if (resolvedDid) {
logger.metric('profile:followers:view', {
contextProfileDid: resolvedDid,
isOwnProfile: isMe,
})
}
}, [resolvedDid, isMe])
// track seen items
const seenItemsRef = React.useRef<Set<string>>(new Set())
React.useEffect(() => {