diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-08-04 12:14:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-04 12:14:21 -0700 |
commit | d9cf37aecf5554a0efbc1da8b564f6933477d3c6 (patch) | |
tree | 1099dfd129bd7af8c770e00f99307f079a8e46a3 /src/state/models/cache/posts.ts | |
parent | c42b9c1b4eacfefac1e14174396433384df16ea0 (diff) | |
download | voidsky-d9cf37aecf5554a0efbc1da8b564f6933477d3c6.tar.zst |
Collection of small UI fixes & improvements (#1104)
* Fix black bar appearing in link card images * Include QPs in posts cache * Fix like color for feed likes in notifications * Fix post embed spacing
Diffstat (limited to 'src/state/models/cache/posts.ts')
-rw-r--r-- | src/state/models/cache/posts.ts | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/state/models/cache/posts.ts b/src/state/models/cache/posts.ts index 48621226a..d3632f436 100644 --- a/src/state/models/cache/posts.ts +++ b/src/state/models/cache/posts.ts @@ -1,6 +1,11 @@ import {LRUMap} from 'lru_map' import {RootStoreModel} from '../root-store' -import {AppBskyFeedDefs} from '@atproto/api' +import { + AppBskyFeedDefs, + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, + AppBskyFeedPost, +} from '@atproto/api' type PostView = AppBskyFeedDefs.PostView @@ -27,5 +32,39 @@ export class PostsCache { ) { this.set(feedItem.reply.parent.uri, feedItem.reply.parent) } + const embed = feedItem.post.embed + if ( + AppBskyEmbedRecord.isView(embed) && + AppBskyEmbedRecord.isViewRecord(embed.record) && + AppBskyFeedPost.isRecord(embed.record.value) && + AppBskyFeedPost.validateRecord(embed.record.value).success + ) { + this.set(embed.record.uri, embedViewToPostView(embed.record)) + } + if ( + AppBskyEmbedRecordWithMedia.isView(embed) && + AppBskyEmbedRecord.isViewRecord(embed.record?.record) && + AppBskyFeedPost.isRecord(embed.record.record.value) && + AppBskyFeedPost.validateRecord(embed.record.record.value).success + ) { + this.set( + embed.record.record.uri, + embedViewToPostView(embed.record.record), + ) + } + } +} + +function embedViewToPostView( + embedView: AppBskyEmbedRecord.ViewRecord, +): PostView { + return { + $type: 'app.bsky.feed.post#view', + uri: embedView.uri, + cid: embedView.cid, + author: embedView.author, + record: embedView.value, + indexedAt: embedView.indexedAt, + labels: embedView.labels, } } |