Improve MediaPreview types

This commit is contained in:
Eric Bailey
2025-01-02 16:15:53 -06:00
parent 1cf4f44de4
commit 517543f13a
+5 -9
View File
@@ -6,6 +6,7 @@ import {
AppBskyEmbedImages, AppBskyEmbedImages,
AppBskyEmbedRecordWithMedia, AppBskyEmbedRecordWithMedia,
AppBskyEmbedVideo, AppBskyEmbedVideo,
AppBskyFeedDefs,
} from '@atproto/api' } from '@atproto/api'
import {Trans} from '@lingui/macro' import {Trans} from '@lingui/macro'
@@ -22,17 +23,12 @@ export function Embed({
embed, embed,
style, style,
}: { }: {
embed?: embed?: AppBskyFeedDefs.PostView['embed']
| AppBskyEmbedImages.View
| AppBskyEmbedRecordWithMedia.View
| AppBskyEmbedExternal.View
| AppBskyEmbedVideo.View
| {[k: string]: unknown}
style?: StyleProp<ViewStyle> style?: StyleProp<ViewStyle>
}) { }) {
let media = AppBskyEmbedRecordWithMedia.isView(embed) ? embed.media : embed let media = AppBskyEmbedRecordWithMedia.isView(embed) ? embed.media : embed
if (AppBskyEmbedImages.isView(media)) { if (AppBskyEmbedImages.isValidView(media)) {
return ( return (
<Outer style={style}> <Outer style={style}>
{media.images.map(image => ( {media.images.map(image => (
@@ -44,7 +40,7 @@ export function Embed({
))} ))}
</Outer> </Outer>
) )
} else if (AppBskyEmbedExternal.isView(media) && media.external.thumb) { } else if (AppBskyEmbedExternal.isValidView(media) && media.external.thumb) {
let url: URL | undefined let url: URL | undefined
try { try {
url = new URL(media.external.uri) url = new URL(media.external.uri)
@@ -62,7 +58,7 @@ export function Embed({
) )
} }
} }
} else if (AppBskyEmbedVideo.isView(media)) { } else if (AppBskyEmbedVideo.isValidView(media)) {
return ( return (
<Outer style={style}> <Outer style={style}>
<VideoItem thumbnail={media.thumbnail} alt={media.alt} /> <VideoItem thumbnail={media.thumbnail} alt={media.alt} />