about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-12-07 13:04:22 -0800
committerGitHub <noreply@github.com>2023-12-07 13:04:22 -0800
commitaeafa3a8cd2a4550faeea73d762a99f548c18064 (patch)
tree4f64851881c0cb25012ce596cec97d3a4c2b0474 /src
parent972bc1bd880249acd62579cfd5760a12a42bf5ff (diff)
downloadvoidsky-aeafa3a8cd2a4550faeea73d762a99f548c18064.tar.zst
Fix: remove replies to deleted and blocked posts from feeds (#2130)
Diffstat (limited to 'src')
-rw-r--r--src/lib/api/feed-manip.ts13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index 1123c4e23..622724b35 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -146,6 +146,19 @@ export class FeedTuner {
   ): FeedViewPostsSlice[] {
     let slices: FeedViewPostsSlice[] = []
 
+    // remove posts that are replies, but which don't have the parent
+    // hydrated. this means the parent was either deleted or blocked
+    feed = feed.filter(item => {
+      if (
+        AppBskyFeedPost.isRecord(item.post.record) &&
+        item.post.record.reply &&
+        !item.reply
+      ) {
+        return false
+      }
+      return true
+    })
+
     if (maintainOrder) {
       slices = feed.map(
         item => new FeedViewPostsSlice([item], `slice-${this.keyCounter++}`),