about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnsh <anshnanda10@gmail.com>2023-06-14 13:14:56 -0700
committerGitHub <noreply@github.com>2023-06-14 15:14:56 -0500
commit71af9fd04b49cd4ea0d33632a0b3b47f8a30fb0f (patch)
tree8370bb66affc27ffde2ca9388ffe34227a748882
parentc060cd4158a9d5cb8b5d8e42a7168c90e28ea845 (diff)
downloadvoidsky-71af9fd04b49cd4ea0d33632a0b3b47f8a30fb0f.tar.zst
add error handling to updateCache for saved-feeds (#878)
-rw-r--r--src/state/models/ui/saved-feeds.ts28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/state/models/ui/saved-feeds.ts b/src/state/models/ui/saved-feeds.ts
index f82666517..40265f7cf 100644
--- a/src/state/models/ui/saved-feeds.ts
+++ b/src/state/models/ui/saved-feeds.ts
@@ -78,17 +78,27 @@ export class SavedFeedsModel {
       }
     }
 
+    // early exit if no feeds need to be fetched
+    if (!neededFeedUris.length || neededFeedUris.length === 0) {
+      return
+    }
+
     // fetch the missing models
-    for (let i = 0; i < neededFeedUris.length; i += 25) {
-      const res = await this.rootStore.agent.app.bsky.feed.getFeedGenerators({
-        feeds: neededFeedUris.slice(i, 25),
-      })
-      for (const feedInfo of res.data.feeds) {
-        newFeedModels[feedInfo.uri] = new CustomFeedModel(
-          this.rootStore,
-          feedInfo,
-        )
+    try {
+      for (let i = 0; i < neededFeedUris.length; i += 25) {
+        const res = await this.rootStore.agent.app.bsky.feed.getFeedGenerators({
+          feeds: neededFeedUris.slice(i, 25),
+        })
+        for (const feedInfo of res.data.feeds) {
+          newFeedModels[feedInfo.uri] = new CustomFeedModel(
+            this.rootStore,
+            feedInfo,
+          )
+        }
       }
+    } catch (error) {
+      console.error('Failed to fetch feed models', error)
+      this.rootStore.log.error('Failed to fetch feed models', error)
     }
 
     // merge into the cache