about summary refs log tree commit diff
path: root/src/state
diff options
context:
space:
mode:
Diffstat (limited to 'src/state')
-rw-r--r--src/state/feed-feedback.tsx18
-rw-r--r--src/state/queries/explore-feed-previews.tsx1
-rw-r--r--src/state/queries/post-feed.ts3
3 files changed, 15 insertions, 7 deletions
diff --git a/src/state/feed-feedback.tsx b/src/state/feed-feedback.tsx
index 2ad5ff91a..8880cb6b3 100644
--- a/src/state/feed-feedback.tsx
+++ b/src/state/feed-feedback.tsx
@@ -1,12 +1,15 @@
 import React from 'react'
-import {AppState, AppStateStatus} from 'react-native'
-import {AppBskyFeedDefs} from '@atproto/api'
+import {AppState, type AppStateStatus} from 'react-native'
+import {type AppBskyFeedDefs} from '@atproto/api'
 import throttle from 'lodash.throttle'
 
 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 {
+  type FeedDescriptor,
+  type FeedPostSliceItem,
+} from '#/state/queries/post-feed'
 import {getItemsForFeedback} from '#/view/com/posts/PostFeed'
 import {useAgent} from './session'
 
@@ -103,7 +106,7 @@ export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) {
         return
       }
       const items = getItemsForFeedback(feedItem)
-      for (const {item: postItem, feedContext} of items) {
+      for (const {item: postItem, feedContext, reqId} of items) {
         if (!history.current.has(postItem)) {
           history.current.add(postItem)
           queue.current.add(
@@ -111,6 +114,7 @@ export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) {
               item: postItem.uri,
               event: 'app.bsky.feed.defs#interactionSeen',
               feedContext,
+              reqId,
             }),
           )
           sendToFeed()
@@ -164,12 +168,12 @@ function isDiscoverFeed(feed: FeedDescriptor) {
 function toString(interaction: AppBskyFeedDefs.Interaction): string {
   return `${interaction.item}|${interaction.event}|${
     interaction.feedContext || ''
-  }`
+  }|${interaction.reqId || ''}`
 }
 
 function toInteraction(str: string): AppBskyFeedDefs.Interaction {
-  const [item, event, feedContext] = str.split('|')
-  return {item, event, feedContext}
+  const [item, event, feedContext, reqId] = str.split('|')
+  return {item, event, feedContext, reqId}
 }
 
 type AggregatedStats = {
diff --git a/src/state/queries/explore-feed-previews.tsx b/src/state/queries/explore-feed-previews.tsx
index 4cd7336c0..45bfc5c48 100644
--- a/src/state/queries/explore-feed-previews.tsx
+++ b/src/state/queries/explore-feed-previews.tsx
@@ -215,6 +215,7 @@ export function useFeedPreviews(
                 isFallbackMarker: false,
                 isIncompleteThread: item.isIncompleteThread,
                 feedContext: item.feedContext,
+                reqId: item.reqId,
                 reason: item.reason,
                 feedPostUri: item.feedPostUri,
                 items: item.items
diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts
index f3fa13cfb..920892924 100644
--- a/src/state/queries/post-feed.ts
+++ b/src/state/queries/post-feed.ts
@@ -92,6 +92,7 @@ export interface FeedPostSlice {
   isIncompleteThread: boolean
   isFallbackMarker: boolean
   feedContext: string | undefined
+  reqId: string | undefined
   feedPostUri: string
   reason?:
     | AppBskyFeedDefs.ReasonRepost
@@ -316,6 +317,7 @@ export function usePostFeedQuery(
                     userActionHistory.seen(
                       slice.items.map(item => ({
                         feedContext: slice.feedContext,
+                        reqId: slice.reqId,
                         likeCount: item.post.likeCount ?? 0,
                         repostCount: item.post.repostCount ?? 0,
                         replyCount: item.post.replyCount ?? 0,
@@ -333,6 +335,7 @@ export function usePostFeedQuery(
                     isIncompleteThread: slice.isIncompleteThread,
                     isFallbackMarker: slice.isFallbackMarker,
                     feedContext: slice.feedContext,
+                    reqId: slice.reqId,
                     reason: slice.reason,
                     feedPostUri: slice.feedPostUri,
                     items: slice.items.map((item, i) => {