about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/state/models/feeds/notifications.ts20
-rw-r--r--src/view/com/post/Post.tsx7
2 files changed, 21 insertions, 6 deletions
diff --git a/src/state/models/feeds/notifications.ts b/src/state/models/feeds/notifications.ts
index 50a411379..f52853070 100644
--- a/src/state/models/feeds/notifications.ts
+++ b/src/state/models/feeds/notifications.ts
@@ -225,10 +225,22 @@ export class NotificationsFeedItemModel {
   }
 
   setAdditionalData(additionalPost: AppBskyFeedDefs.PostView) {
-    this.additionalPost = PostThreadModel.fromPostView(
-      this.rootStore,
-      additionalPost,
-    )
+    if (this.additionalPost) {
+      this.additionalPost._replaceAll({
+        success: true,
+        headers: {},
+        data: {
+          thread: {
+            post: additionalPost,
+          },
+        },
+      })
+    } else {
+      this.additionalPost = PostThreadModel.fromPostView(
+        this.rootStore,
+        additionalPost,
+      )
+    }
   }
 }
 
diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx
index 673ddefcf..86cb24f9b 100644
--- a/src/view/com/post/Post.tsx
+++ b/src/view/com/post/Post.tsx
@@ -51,12 +51,15 @@ export const Post = observer(function Post({
 
   useEffect(() => {
     if (initView || view?.params.uri === uri) {
-      return // no change needed? or trigger refresh?
+      if (initView !== view) {
+        setView(initView)
+      }
+      return
     }
     const newView = new PostThreadModel(store, {uri, depth: 0})
     setView(newView)
     newView.setup().catch(err => store.log.error('Failed to fetch post', err))
-  }, [initView, uri, view?.params.uri, store])
+  }, [initView, setView, uri, view, view?.params.uri, store])
 
   // deleted
   // =