Improve MediaPreview types
This commit is contained in:
@@ -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} />
|
||||||
|
|||||||
Reference in New Issue
Block a user