about summary refs log tree commit diff
path: root/src/state
diff options
context:
space:
mode:
Diffstat (limited to 'src/state')
-rw-r--r--src/state/models/me.ts9
-rw-r--r--src/state/models/ui/my-feeds.ts7
-rw-r--r--src/state/models/ui/saved-feeds.ts4
3 files changed, 19 insertions, 1 deletions
diff --git a/src/state/models/me.ts b/src/state/models/me.ts
index 75c87d765..e7baf5bf2 100644
--- a/src/state/models/me.ts
+++ b/src/state/models/me.ts
@@ -6,6 +6,7 @@ import {
 import {RootStoreModel} from './root-store'
 import {PostsFeedModel} from './feeds/posts'
 import {NotificationsFeedModel} from './feeds/notifications'
+import {MyFeedsUIModel} from './ui/my-feeds'
 import {MyFollowsCache} from './cache/my-follows'
 import {isObj, hasProp} from 'lib/type-guards'
 
@@ -22,6 +23,7 @@ export class MeModel {
   followersCount: number | undefined
   mainFeed: PostsFeedModel
   notifications: NotificationsFeedModel
+  myFeeds: MyFeedsUIModel
   follows: MyFollowsCache
   invites: ComAtprotoServerDefs.InviteCode[] = []
   appPasswords: ComAtprotoServerListAppPasswords.AppPassword[] = []
@@ -42,12 +44,14 @@ export class MeModel {
       algorithm: 'reverse-chronological',
     })
     this.notifications = new NotificationsFeedModel(this.rootStore)
+    this.myFeeds = new MyFeedsUIModel(this.rootStore)
     this.follows = new MyFollowsCache(this.rootStore)
   }
 
   clear() {
     this.mainFeed.clear()
     this.notifications.clear()
+    this.myFeeds.clear()
     this.follows.clear()
     this.rootStore.profiles.cache.clear()
     this.rootStore.posts.cache.clear()
@@ -111,6 +115,11 @@ export class MeModel {
       /* dont await */ this.notifications.setup().catch(e => {
         this.rootStore.log.error('Failed to setup notifications model', e)
       })
+      /* dont await */ this.notifications.setup().catch(e => {
+        this.rootStore.log.error('Failed to setup notifications model', e)
+      })
+      this.myFeeds.clear()
+      /* dont await */ this.myFeeds.saved.refresh()
       this.rootStore.emitSessionLoaded()
       await this.fetchInviteCodes()
       await this.fetchAppPasswords()
diff --git a/src/state/models/ui/my-feeds.ts b/src/state/models/ui/my-feeds.ts
index 58f2e7f65..ade686338 100644
--- a/src/state/models/ui/my-feeds.ts
+++ b/src/state/models/ui/my-feeds.ts
@@ -77,6 +77,11 @@ export class MyFeedsUIModel {
     }
   }
 
+  clear() {
+    this.saved.clear()
+    this.discovery.clear()
+  }
+
   registerListeners() {
     const dispose1 = reaction(
       () => this.rootStore.preferences.savedFeeds,
@@ -107,7 +112,7 @@ export class MyFeedsUIModel {
       _reactKey: '__saved_feeds_header__',
       type: 'saved-feeds-header',
     })
-    if (this.saved.isLoading) {
+    if (this.saved.isLoading && !this.saved.hasContent) {
       items.push({
         _reactKey: '__saved_feeds_loading__',
         type: 'saved-feeds-loading',
diff --git a/src/state/models/ui/saved-feeds.ts b/src/state/models/ui/saved-feeds.ts
index 4156f792a..881684ee6 100644
--- a/src/state/models/ui/saved-feeds.ts
+++ b/src/state/models/ui/saved-feeds.ts
@@ -52,6 +52,10 @@ export class SavedFeedsModel {
   // public api
   // =
 
+  clear() {
+    this.all = []
+  }
+
   /**
    * Refresh the preferences then reload all feed infos
    */