diff options
Diffstat (limited to 'src/lib/api/feed-manip.ts')
-rw-r--r-- | src/lib/api/feed-manip.ts | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 035b36096..f2500c4f7 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -74,9 +74,12 @@ export class FeedViewPostsSlice { } flattenReplyParent() { - if (this.items[0].reply?.parent) { - this.isFlattenedReply = true - this.items.splice(0, 0, {post: this.items[0].reply?.parent}) + if (this.items[0].reply) { + const reply = this.items[0].reply + if (AppBskyFeedDefs.isPostView(reply.parent)) { + this.isFlattenedReply = true + this.items.splice(0, 0, {post: reply.parent}) + } } } } @@ -130,16 +133,17 @@ export class FeedTuner { // turn non-threads with reply parents into threads for (const slice of slices) { - if ( - !slice.isThread && - !slice.items[0].reason && - slice.items[0].reply?.parent && - !this.seenUris.has(slice.items[0].reply?.parent.uri) && - !soonToBeSeenUris.has(slice.items[0].reply?.parent.uri) - ) { - const uri = slice.items[0].reply?.parent.uri - slice.flattenReplyParent() - soonToBeSeenUris.add(uri) + if (!slice.isThread && !slice.items[0].reason && slice.items[0].reply) { + const reply = slice.items[0].reply + if ( + AppBskyFeedDefs.isPostView(reply.parent) && + !this.seenUris.has(reply.parent.uri) && + !soonToBeSeenUris.has(reply.parent.uri) + ) { + const uri = reply.parent.uri + slice.flattenReplyParent() + soonToBeSeenUris.add(uri) + } } } @@ -231,7 +235,12 @@ export class FeedTuner { } function getSelfReplyUri(item: FeedViewPost): string | undefined { - return item.reply?.parent.author.did === item.post.author.did - ? item.reply?.parent.uri - : undefined + if (item.reply) { + if (AppBskyFeedDefs.isPostView(item.reply.parent)) { + return item.reply.parent.author.did === item.post.author.did + ? item.reply.parent.uri + : undefined + } + } + return undefined } |