diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx
index 2f9f6b3cdb..d880199652 100644
--- a/bskyembed/src/components/embed.tsx
+++ b/bskyembed/src/components/embed.tsx
@@ -9,23 +9,33 @@ import {
AppBskyLabelerDefs,
} from '@atproto/api'
import {ComponentChildren, h} from 'preact'
+import {useMemo} from 'preact/hooks'
import infoIcon from '../../assets/circleInfo_stroke2_corner0_rounded.svg'
+import {CONTENT_LABELS, labelsToInfo} from '../labels'
import {getRkey} from '../utils'
import {Link} from './link'
-export function Embed({content}: {content: AppBskyFeedDefs.PostView['embed']}) {
+export function Embed({
+ content,
+ labels,
+}: {
+ content: AppBskyFeedDefs.PostView['embed']
+ labels: AppBskyFeedDefs.PostView['labels']
+}) {
+ const labelInfo = useMemo(() => labelsToInfo(labels), [labels])
+
if (!content) return null
try {
// Case 1: Image
if (AppBskyEmbedImages.isView(content)) {
- return
{record.author.displayName}
@@ -74,7 +91,11 @@ export function Embed({content}: {content: AppBskyFeedDefs.PostView['embed']}) {
return false
})
.map(embed => (
-
+
))}
)
@@ -137,15 +158,19 @@ export function Embed({content}: {content: AppBskyFeedDefs.PostView['embed']}) {
}
// Case 4: Record with media
- if (AppBskyEmbedRecordWithMedia.isView(content)) {
+ if (
+ AppBskyEmbedRecordWithMedia.isView(content) &&
+ AppBskyEmbedRecord.isViewRecord(content.record.record)
+ ) {
return (
+
+