diff options
Diffstat (limited to 'src/state/cache/post-shadow.ts')
-rw-r--r-- | src/state/cache/post-shadow.ts | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/state/cache/post-shadow.ts b/src/state/cache/post-shadow.ts index 65300a8ef..4d848ccc4 100644 --- a/src/state/cache/post-shadow.ts +++ b/src/state/cache/post-shadow.ts @@ -21,6 +21,7 @@ export interface PostShadow { repostUri: string | undefined isDeleted: boolean embed: AppBskyEmbedRecord.View | AppBskyEmbedRecordWithMedia.View | undefined + threadgateView: AppBskyFeedDefs.ThreadgateView | undefined } export const POST_TOMBSTONE = Symbol('PostTombstone') @@ -104,6 +105,16 @@ function mergeShadow( } } + let threadgateView: typeof post.threadgate + if ('threadgateView' in shadow && !post.threadgate) { + if ( + AppBskyFeedDefs.isThreadgateView(shadow.threadgateView) || + shadow.threadgateView === undefined + ) { + threadgateView = shadow.threadgateView + } + } + return castAsShadow({ ...post, embed: embed || post.embed, @@ -114,6 +125,8 @@ function mergeShadow( like: 'likeUri' in shadow ? shadow.likeUri : post.viewer?.like, repost: 'repostUri' in shadow ? shadow.repostUri : post.viewer?.repost, }, + // always prefer real post data + threadgate: post.threadgate || threadgateView, }) } |