This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

semble / src / webapp / features / platforms / bluesky / components / postEmbed / PostEmbed.tsx
1.0 kB 35 lines
1import { 2 AppBskyEmbedExternal, 3 AppBskyEmbedImages, 4 AppBskyEmbedRecord, 5 AppBskyEmbedVideo, 6 AppBskyFeedDefs, 7 AppBskyGraphDefs, 8} from '@atproto/api'; 9import ImageEmbed from '../imageEmbed/ImageEmbed'; 10import ExternalEmbed from '../externalEmbed/ExternalEmbed'; 11import VideoEmbed from '../videoEmbed/VideoEmbed'; 12import ListEmbed from '../listEmbed/ListEmbed'; 13 14interface Props { 15 embed: AppBskyFeedDefs.PostView['embed']; 16} 17 18export default function PostEmbed(props: Props) { 19 const content = props.embed; 20 21 switch (true) { 22 case AppBskyEmbedImages.isView(content): 23 return <ImageEmbed images={content.images} />; 24 case AppBskyEmbedExternal.isView(content): 25 return <ExternalEmbed embed={content} />; 26 case AppBskyEmbedVideo.isView(content): 27 return <VideoEmbed embed={content} />; 28 case AppBskyEmbedRecord.isView(content) && 29 AppBskyGraphDefs.isListView(content.record): 30 return <ListEmbed list={content.record} />; 31 32 default: 33 return <>default</>; 34 } 35}