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
// =
|