diff options
Diffstat (limited to 'src/lib/api')
-rw-r--r-- | src/lib/api/api-polyfill.ts | 2 | ||||
-rw-r--r-- | src/lib/api/feed-manip.ts | 41 |
2 files changed, 26 insertions, 17 deletions
diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts index 7c38625a2..ea1d97598 100644 --- a/src/lib/api/api-polyfill.ts +++ b/src/lib/api/api-polyfill.ts @@ -11,7 +11,7 @@ export function doPolyfill() { interface FetchHandlerResponse { status: number headers: Record<string, string> - body: ArrayBuffer | undefined + body: any } async function fetchHandler( 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 } |