diff options
Diffstat (limited to 'src/view/com/util/post-embeds/index.tsx')
-rw-r--r-- | src/view/com/util/post-embeds/index.tsx | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/src/view/com/util/post-embeds/index.tsx b/src/view/com/util/post-embeds/index.tsx index 8156d7732..53ef17318 100644 --- a/src/view/com/util/post-embeds/index.tsx +++ b/src/view/com/util/post-embeds/index.tsx @@ -14,6 +14,7 @@ import { AppBskyEmbedRecordWithMedia, AppBskyFeedPost, AppBskyFeedDefs, + AppBskyGraphDefs, } from '@atproto/api' import {Link} from '../Link' import {ImageLayoutGrid} from '../images/ImageLayoutGrid' @@ -25,8 +26,8 @@ import {ExternalLinkEmbed} from './ExternalLinkEmbed' import {getYoutubeVideoId} from 'lib/strings/url-helpers' import QuoteEmbed from './QuoteEmbed' import {AutoSizedImage} from '../images/AutoSizedImage' -import {CustomFeed} from 'view/com/feeds/CustomFeed' -import {CustomFeedModel} from 'state/models/feeds/custom-feed' +import {CustomFeedEmbed} from './CustomFeedEmbed' +import {ListEmbed} from './ListEmbed' type Embed = | AppBskyEmbedRecord.View @@ -144,6 +145,23 @@ export function PostEmbeds({ } } + // custom feed embed (i.e. generator view) + // = + if ( + AppBskyEmbedRecord.isView(embed) && + AppBskyFeedDefs.isGeneratorView(embed.record) + ) { + return <CustomFeedEmbed record={embed.record} /> + } + + // list embed (e.g. mute lists; i.e. ListView) + if ( + AppBskyEmbedRecord.isView(embed) && + AppBskyGraphDefs.isListView(embed.record) + ) { + return <ListEmbed item={embed.record} /> + } + // external link embed // = if (AppBskyEmbedExternal.isView(embed)) { @@ -164,34 +182,9 @@ export function PostEmbeds({ ) } - // custom feed embed (i.e. generator view) - // = - if ( - AppBskyEmbedRecord.isView(embed) && - AppBskyFeedDefs.isGeneratorView(embed.record) - ) { - return <CustomFeedEmbed record={embed.record} /> - } - return <View /> } -function CustomFeedEmbed({record}: {record: AppBskyFeedDefs.GeneratorView}) { - const pal = usePalette('default') - const store = useStores() - const item = React.useMemo( - () => new CustomFeedModel(store, record), - [store, record], - ) - return ( - <CustomFeed - item={item} - style={[pal.view, pal.border, styles.customFeedOuter]} - showLikes - /> - ) -} - const styles = StyleSheet.create({ stackContainer: { gap: 6, @@ -208,13 +201,6 @@ const styles = StyleSheet.create({ borderRadius: 8, marginTop: 4, }, - customFeedOuter: { - borderWidth: 1, - borderRadius: 8, - marginTop: 4, - paddingHorizontal: 12, - paddingVertical: 12, - }, alt: { backgroundColor: 'rgba(0, 0, 0, 0.75)', borderRadius: 6, |