Prep threadgate shadow hack (#4970)

Co-authored-by: Hailey <me@haileyok.com>
This commit is contained in:
Eric Bailey
2024-08-21 22:16:03 -05:00
committed by GitHub
parent 61f0be705d
commit d5c78b9183
6 changed files with 68 additions and 23 deletions
+13
View File
@@ -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,
})
}