about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-09-18 13:38:33 -0700
committerGitHub <noreply@github.com>2023-09-18 13:38:33 -0700
commit255beb0c1f74fe3a72a8069f30395b7774442f88 (patch)
treece77c8d5257533e8bd6ad8fd18feb9949f956635 /src
parent157daad60538cf011a1e0ebd6370566df36fa1d8 (diff)
downloadvoidsky-255beb0c1f74fe3a72a8069f30395b7774442f88.tar.zst
Various release fixes (#1470)
* Fix error state for recommended feeds

* Handle failure to set default feeds more safely

* Dont return undefined within react-query

* Update yarn.lock
Diffstat (limited to 'src')
-rw-r--r--src/state/models/ui/preferences.ts28
-rw-r--r--src/view/com/auth/onboarding/RecommendedFeeds.tsx12
2 files changed, 24 insertions, 16 deletions
diff --git a/src/state/models/ui/preferences.ts b/src/state/models/ui/preferences.ts
index 7232a7b74..3790b3a92 100644
--- a/src/state/models/ui/preferences.ts
+++ b/src/state/models/ui/preferences.ts
@@ -233,18 +233,22 @@ export class PreferencesModel {
 
       // set defaults on missing items
       if (typeof prefs.feeds.saved === 'undefined') {
-        const {saved, pinned} = await DEFAULT_FEEDS(
-          this.rootStore.agent.service.toString(),
-          (handle: string) =>
-            this.rootStore.agent
-              .resolveHandle({handle})
-              .then(({data}) => data.did),
-        )
-        runInAction(() => {
-          this.savedFeeds = saved
-          this.pinnedFeeds = pinned
-        })
-        await this.rootStore.agent.setSavedFeeds(saved, pinned)
+        try {
+          const {saved, pinned} = await DEFAULT_FEEDS(
+            this.rootStore.agent.service.toString(),
+            (handle: string) =>
+              this.rootStore.agent
+                .resolveHandle({handle})
+                .then(({data}) => data.did),
+          )
+          runInAction(() => {
+            this.savedFeeds = saved
+            this.pinnedFeeds = pinned
+          })
+          await this.rootStore.agent.setSavedFeeds(saved, pinned)
+        } catch (error) {
+          this.rootStore.log.error('Failed to set default feeds', {error})
+        }
       }
     } finally {
       this.lock.release()
diff --git a/src/view/com/auth/onboarding/RecommendedFeeds.tsx b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
index 8e29a5895..b39714ef2 100644
--- a/src/view/com/auth/onboarding/RecommendedFeeds.tsx
+++ b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
@@ -34,13 +34,15 @@ export const RecommendedFeeds = observer(function RecommendedFeedsImpl({
           success,
         } = await store.agent.app.bsky.feed.getSuggestedFeeds()
 
-        if (!success) return
+        if (!success) {
+          return []
+        }
 
         return (feeds.length ? feeds : []).map(feed => {
           return new CustomFeedModel(store, feed)
         })
       } catch (e) {
-        return
+        return []
       }
     },
   })
@@ -148,11 +150,13 @@ export const RecommendedFeeds = observer(function RecommendedFeedsImpl({
               style={{flex: 1}}
             />
           ) : isLoading ? (
-            <View>
+            <View style={{flex: 1}}>
               <ActivityIndicator size="large" />
             </View>
           ) : (
-            <ErrorMessage message="Failed to load recommended feeds" />
+            <View style={{flex: 1}}>
+              <ErrorMessage message="Failed to load recommended feeds" />
+            </View>
           )}
 
           <Button