Remove replies from the home feed (#259)

* Remove replies from the home feed (close #252)

* Increase the 'load more' threshhold
zio/stable
Paul Frazee 2023-03-03 14:43:18 -06:00 committed by GitHub
parent b1fa1b633f
commit c2bfa111ac
2 changed files with 33 additions and 17 deletions

View File

@ -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)
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)
)
})
return nonReplyFeed
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

View File

@ -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}}