about summary refs log tree commit diff
path: root/src/lib/api/feed-manip.ts
diff options
context:
space:
mode:
authorSnackpackWayne <49062420+snackpackwayne@users.noreply.github.com>2023-12-27 22:38:01 +0100
committerGitHub <noreply@github.com>2023-12-27 22:38:01 +0100
commit52cb777c9432354302b3285e141aa96632af34d5 (patch)
tree0b823b5816f040990af0ee2fc7815a2f1a063fca /src/lib/api/feed-manip.ts
parent538c67cc332a6b909f83dd382843667dcced0fe9 (diff)
parentf402f33a024ea59ea9bd2decfc0444e6836a934c (diff)
downloadvoidsky-52cb777c9432354302b3285e141aa96632af34d5.tar.zst
Merge branch 'main' into patch-1
Diffstat (limited to 'src/lib/api/feed-manip.ts')
-rw-r--r--src/lib/api/feed-manip.ts19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index 9a050fd3e..c964693c4 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -117,11 +117,7 @@ export class FeedViewPostsSlice {
 }
 
 export class NoopFeedTuner {
-  private keyCounter = 0
-
-  reset() {
-    this.keyCounter = 0
-  }
+  reset() {}
   tune(
     feed: FeedViewPost[],
     _opts?: {dryRun: boolean; maintainOrder: boolean},
@@ -131,13 +127,13 @@ export class NoopFeedTuner {
 }
 
 export class FeedTuner {
-  private keyCounter = 0
+  seenKeys: Set<string> = new Set()
   seenUris: Set<string> = new Set()
 
   constructor(public tunerFns: FeedTunerFn[]) {}
 
   reset() {
-    this.keyCounter = 0
+    this.seenKeys.clear()
     this.seenUris.clear()
   }
 
@@ -218,11 +214,16 @@ export class FeedTuner {
     }
 
     if (!dryRun) {
-      for (const slice of slices) {
+      slices = slices.filter(slice => {
+        if (this.seenKeys.has(slice._reactKey)) {
+          return false
+        }
         for (const item of slice.items) {
           this.seenUris.add(item.post.uri)
         }
-      }
+        this.seenKeys.add(slice._reactKey)
+        return true
+      })
     }
 
     return slices