diff options
Diffstat (limited to 'src/state/models/feeds/posts.ts')
-rw-r--r-- | src/state/models/feeds/posts.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/state/models/feeds/posts.ts b/src/state/models/feeds/posts.ts index 62047acba..44cec3af7 100644 --- a/src/state/models/feeds/posts.ts +++ b/src/state/models/feeds/posts.ts @@ -297,6 +297,9 @@ export class PostsFeedModel { // used to linearize async modifications to state lock = new AwaitLock() + // used to track if what's hot is coming up empty + emptyFetches = 0 + // data slices: PostsFeedSliceModel[] = [] @@ -603,6 +606,9 @@ export class PostsFeedModel { ) { this.loadMoreCursor = res.data.cursor this.hasMore = !!this.loadMoreCursor + if (replace) { + this.emptyFetches = 0 + } this.rootStore.me.follows.hydrateProfiles( res.data.feed.map(item => item.post.author), @@ -625,6 +631,12 @@ export class PostsFeedModel { } else { this.slices = this.slices.concat(toAppend) } + if (toAppend.length === 0) { + this.emptyFetches++ + if (this.emptyFetches >= 10) { + this.hasMore = false + } + } }) } |