about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-03-21 13:20:35 -0500
committerPaul Frazee <pfrazee@gmail.com>2023-03-21 13:20:35 -0500
commit35fae5ab252a4150004239ef8c0ba13e9fff4a87 (patch)
treead402ac34b3aa2562a016547672e8ff6d988f84f
parent92d9267805d76c43a6f6342aabf14392b2fe5cec (diff)
downloadvoidsky-35fae5ab252a4150004239ef8c0ba13e9fff4a87.tar.zst
Fix duplicates showing up in the feed due to reply parents
-rw-r--r--src/lib/api/feed-manip.ts10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index fabcf84f0..d40e13a59 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -116,9 +116,14 @@ export class FeedTuner {
     }
 
     // remove any items already "seen"
+    const soonToBeSeenUris: Set<string> = new Set()
     for (let i = slices.length - 1; i >= 0; i--) {
       if (this.seenUris.has(slices[i].uri)) {
         slices.splice(i, 1)
+      } else {
+        for (const item of slices[i].items) {
+          soonToBeSeenUris.add(item.post.uri)
+        }
       }
     }
 
@@ -128,9 +133,12 @@ export class FeedTuner {
         !slice.isThread &&
         !slice.items[0].reason &&
         slice.items[0].reply?.parent &&
-        !this.seenUris.has(slice.items[0].reply?.parent.uri)
+        !this.seenUris.has(slice.items[0].reply?.parent.uri) &&
+        !soonToBeSeenUris.has(slice.items[0].reply?.parent.uri)
       ) {
+        const uri = slice.items[0].reply?.parent.uri
         slice.flattenReplyParent()
+        soonToBeSeenUris.add(uri)
       }
     }