diff options
author | Eric Bailey <git@esb.lol> | 2024-08-21 21:20:45 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-21 19:20:45 -0700 |
commit | 6616a6467ec53aa71e5f823c2d8c46dc01442703 (patch) | |
tree | 5e49d6916bc9b9fc71a475cf0d02f169c744bf59 /src/state/cache | |
parent | 56ab5e177fa2b24d0e5d9d969aa37532b96128da (diff) | |
download | voidsky-6616a6467ec53aa71e5f823c2d8c46dc01442703.tar.zst |
Detached QPs and hidden replies (#4878)
Co-authored-by: Hailey <me@haileyok.com>
Diffstat (limited to 'src/state/cache')
-rw-r--r-- | src/state/cache/post-shadow.ts | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/state/cache/post-shadow.ts b/src/state/cache/post-shadow.ts index b37e9bd42..65300a8ef 100644 --- a/src/state/cache/post-shadow.ts +++ b/src/state/cache/post-shadow.ts @@ -1,5 +1,9 @@ import {useEffect, useMemo, useState} from 'react' -import {AppBskyFeedDefs} from '@atproto/api' +import { + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, + AppBskyFeedDefs, +} from '@atproto/api' import {QueryClient} from '@tanstack/react-query' import EventEmitter from 'eventemitter3' @@ -16,6 +20,7 @@ export interface PostShadow { likeUri: string | undefined repostUri: string | undefined isDeleted: boolean + embed: AppBskyEmbedRecord.View | AppBskyEmbedRecordWithMedia.View | undefined } export const POST_TOMBSTONE = Symbol('PostTombstone') @@ -87,8 +92,21 @@ function mergeShadow( repostCount = Math.max(0, repostCount) } + let embed: typeof post.embed + if ('embed' in shadow) { + if ( + (AppBskyEmbedRecord.isView(post.embed) && + AppBskyEmbedRecord.isView(shadow.embed)) || + (AppBskyEmbedRecordWithMedia.isView(post.embed) && + AppBskyEmbedRecordWithMedia.isView(shadow.embed)) + ) { + embed = shadow.embed + } + } + return castAsShadow({ ...post, + embed: embed || post.embed, likeCount: likeCount, repostCount: repostCount, viewer: { |