about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/state/models/feed-view.ts47
-rw-r--r--src/view/com/posts/Feed.tsx5
2 files changed, 34 insertions, 18 deletions
diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts
index 645b1f2eb..ed5a32d8f 100644
--- a/src/state/models/feed-view.ts
+++ b/src/state/models/feed-view.ts
@@ -239,22 +239,33 @@ export class FeedModel {
   }
 
   get nonReplyFeed() {
-    const nonReplyFeed = this.feed.filter(item => {
-      const params = this.params as GetAuthorFeed.QueryParams
-      const isRepost =
-        item.reply &&
-        (item?.reasonRepost?.by?.handle === params.author ||
-          item?.reasonRepost?.by?.did === params.author)
-
-      return (
-        !item.reply || // not a reply
-        isRepost ||
-        ((item._isThreadParent || // but allow if it's a thread by the user
-          item._isThreadChild) &&
-          item.reply?.root.author.did === item.post.author.did)
-      )
-    })
-    return nonReplyFeed
+    if (this.feedType === 'author') {
+      return this.feed.filter(item => {
+        const params = this.params as GetAuthorFeed.QueryParams
+        const isRepost =
+          item.reply &&
+          (item?.reasonRepost?.by?.handle === params.author ||
+            item?.reasonRepost?.by?.did === params.author)
+
+        return (
+          !item.reply || // not a reply
+          isRepost ||
+          ((item._isThreadParent || // but allow if it's a thread by the user
+            item._isThreadChild) &&
+            item.reply?.root.author.did === item.post.author.did)
+        )
+      })
+    } else {
+      return this.feed.filter(item => {
+        const isRepost = Boolean(item?.reasonRepost)
+        return (
+          !item.reply || // not a reply
+          isRepost || // but allow if it's a repost or thread
+          item._isThreadParent ||
+          item._isThreadChild
+        )
+      })
+    }
   }
 
   setHasNewLatest(v: boolean) {
@@ -423,6 +434,10 @@ export class FeedModel {
     if (!item) {
       return
     }
+    if (item.reply) {
+      // TEMPORARY ignore replies
+      return
+    }
     if (AppBskyFeedFeedViewPost.isReasonRepost(item.reason)) {
       if (item.reason.by.did === this.rootStore.me.did) {
         return // ignore reposts by the user
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx
index 03a719f16..a4963e0d6 100644
--- a/src/view/com/posts/Feed.tsx
+++ b/src/view/com/posts/Feed.tsx
@@ -61,7 +61,7 @@ export const Feed = observer(function Feed({
       if (feed.isEmpty) {
         feedItems = feedItems.concat([EMPTY_FEED_ITEM])
       } else {
-        feedItems = feedItems.concat(feed.feed)
+        feedItems = feedItems.concat(feed.nonReplyFeed)
       }
     }
     return feedItems
@@ -69,7 +69,7 @@ export const Feed = observer(function Feed({
     feed.hasError,
     feed.hasLoaded,
     feed.isEmpty,
-    feed.feed,
+    feed.nonReplyFeed,
     showWelcomeBanner,
     isNewUser,
   ])
@@ -171,6 +171,7 @@ export const Feed = observer(function Feed({
           onScroll={onScroll}
           onRefresh={onRefresh}
           onEndReached={onEndReached}
+          onEndReachedThreshold={0.25}
           removeClippedSubviews={true}
           contentInset={{top: headerOffset}}
           contentOffset={{x: 0, y: headerOffset * -1}}