diff --git a/src/state/feed-feedback.tsx b/src/state/feed-feedback.tsx index d5b1986b68..2ad5ff91a2 100644 --- a/src/state/feed-feedback.tsx +++ b/src/state/feed-feedback.tsx @@ -7,7 +7,7 @@ import {FEEDBACK_FEEDS, STAGING_FEEDS} from '#/lib/constants' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {FeedDescriptor, FeedPostSliceItem} from '#/state/queries/post-feed' -import {getFeedPostSlice} from '#/view/com/posts/PostFeed' +import {getItemsForFeedback} from '#/view/com/posts/PostFeed' import {useAgent} from './session' type StateContext = { @@ -102,21 +102,15 @@ export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) { if (!enabled) { return } - const slice = getFeedPostSlice(feedItem) - if (slice === null) { - return - } - for (const [i, postItem] of slice.items.entries()) { + const items = getItemsForFeedback(feedItem) + for (const {item: postItem, feedContext} of items) { if (!history.current.has(postItem)) { history.current.add(postItem) queue.current.add( toString({ item: postItem.uri, event: 'app.bsky.feed.defs#interactionSeen', - feedContext: - slice.type === 'videoGridRow' - ? slice.feedContexts?.[i] - : slice.feedContext, + feedContext, }), ) sendToFeed() diff --git a/src/view/com/posts/PostFeed.tsx b/src/view/com/posts/PostFeed.tsx index 7d0b6e66f9..236b248dbf 100644 --- a/src/view/com/posts/PostFeed.tsx +++ b/src/view/com/posts/PostFeed.tsx @@ -124,18 +124,23 @@ type FeedRow = key: string } -export function getFeedPostSlice(feedRow: FeedRow): { - items: FeedPostSliceItem[] - type: 'sliceItem' | 'videoGridRow' - feedContext?: string | undefined - feedContexts?: (string | undefined)[] -} | null { +export function getItemsForFeedback(feedRow: FeedRow): + | { + item: FeedPostSliceItem + feedContext: string | undefined + }[] { if (feedRow.type === 'sliceItem') { - return {...feedRow.slice, type: 'sliceItem'} + return feedRow.slice.items.map(item => ({ + item, + feedContext: feedRow.slice.feedContext, + })) } else if (feedRow.type === 'videoGridRow') { - return feedRow + return feedRow.items.map((item, i) => ({ + item, + feedContext: feedRow.feedContexts[i], + })) } else { - return null + return [] } }