about summary refs log tree commit diff
path: root/src/state/models/feed-view.ts
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-11-14 15:02:42 -0600
committerPaul Frazee <pfrazee@gmail.com>2022-11-14 15:02:42 -0600
commitef071c09153a1bb843515dff1598beef7932b093 (patch)
tree84678c144c9325ba90b44a6f50c205f7bc815ca2 /src/state/models/feed-view.ts
parentbc9be64a4e8d9da597c1751c4cf081e33b11be21 (diff)
downloadvoidsky-ef071c09153a1bb843515dff1598beef7932b093.tar.zst
Fix issue causing double-loads of notifications
Diffstat (limited to 'src/state/models/feed-view.ts')
-rw-r--r--src/state/models/feed-view.ts15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts
index 8e180a35e..905f7af7e 100644
--- a/src/state/models/feed-view.ts
+++ b/src/state/models/feed-view.ts
@@ -134,9 +134,9 @@ export class FeedModel {
   isLoading = false
   isRefreshing = false
   hasLoaded = false
-  hasReachedEnd = false
   error = ''
   params: GetTimeline.QueryParams | GetAuthorFeed.QueryParams
+  hasMore = true
   loadMoreCursor: string | undefined
   _loadPromise: Promise<void> | undefined
   _loadMorePromise: Promise<void> | undefined
@@ -298,18 +298,15 @@ export class FeedModel {
   }
 
   private async _loadMore() {
+    if (!this.hasMore) {
+      return
+    }
     this._xLoading()
     try {
       const res = await this._getFeed({
         before: this.loadMoreCursor,
       })
-      if (res.data.feed.length === 0) {
-        runInAction(() => {
-          this.hasReachedEnd = true
-        })
-      } else {
-        this._appendAll(res)
-      }
+      this._appendAll(res)
       this._xIdle()
     } catch (e: any) {
       this._xIdle(`Failed to load feed: ${e.toString()}`)
@@ -342,12 +339,12 @@ export class FeedModel {
 
   private _replaceAll(res: GetTimeline.Response | GetAuthorFeed.Response) {
     this.feed.length = 0
-    this.hasReachedEnd = false
     this._appendAll(res)
   }
 
   private _appendAll(res: GetTimeline.Response | GetAuthorFeed.Response) {
     this.loadMoreCursor = res.data.cursor
+    this.hasMore = !!this.loadMoreCursor
     let counter = this.feed.length
     for (const item of res.data.feed) {
       this._append(counter++, item)