about summary refs log tree commit diff
path: root/src/state/models/feeds/posts.ts
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-06-16 14:59:29 -0500
committerEric Bailey <git@esb.lol>2023-06-16 15:01:43 -0500
commit896aea98374188ac33ac92e1ed582d5d7f189ac6 (patch)
tree11543a99ca926d8b83e544b5e12a15e909e983ef /src/state/models/feeds/posts.ts
parent17e7590bcd36f9ec3433cb2714a9319fac4aeebf (diff)
downloadvoidsky-896aea98374188ac33ac92e1ed582d5d7f189ac6.tar.zst
feat: add home feed preferences settings modal and tuners
Diffstat (limited to 'src/state/models/feeds/posts.ts')
-rw-r--r--src/state/models/feeds/posts.ts14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/state/models/feeds/posts.ts b/src/state/models/feeds/posts.ts
index b7d4def13..594143bf2 100644
--- a/src/state/models/feeds/posts.ts
+++ b/src/state/models/feeds/posts.ts
@@ -115,6 +115,12 @@ export class PostsFeedModel {
   }
 
   get feedTuners() {
+    const areRepliesEnabled = this.rootStore.preferences.homeFeedRepliesEnabled
+    const repliesThreshold = this.rootStore.preferences.homeFeedRepliesThreshold
+    const areRepostsEnabled = this.rootStore.preferences.homeFeedRepostsEnabled
+    const areQuotePostsEnabled =
+      this.rootStore.preferences.homeFeedQuotePostsEnabled
+
     if (this.feedType === 'custom') {
       return [
         FeedTuner.dedupReposts,
@@ -124,7 +130,13 @@ export class PostsFeedModel {
       ]
     }
     if (this.feedType === 'home') {
-      return [FeedTuner.dedupReposts, FeedTuner.likedRepliesOnly]
+      return [
+        areRepostsEnabled && FeedTuner.dedupReposts,
+        !areRepostsEnabled && FeedTuner.removeReposts,
+        areRepliesEnabled && FeedTuner.likedRepliesOnly({repliesThreshold}),
+        !areRepliesEnabled && FeedTuner.removeReplies,
+        !areQuotePostsEnabled && FeedTuner.removeQuotePosts,
+      ].filter(Boolean)
     }
     return []
   }