Port post embeds to new arch (#7408)
* Direct port of embeds to new arch (cherry picked from commit cc3fa1f6cea396dd9222486c633a508bfee1ecd6) * Re-org * Split out ListEmbed and FeedEmbed * Split out ImageEmbed * DRY up a bit * Port over ExternalLinkEmbed * Port over Player and Gif embeds * Migrate ComposerReplyTo * Replace other usages of old post-embeds * Migrate view contexts * Copy pasta VideoEmbed * Copy pasta GifEmbed * Swap in new file location * Clean up * Fix up native * Add back in correct moderation on List and Feed embeds * Format * Prettier * delete old video utils * move bandwidth-estimate.ts * Remove log * Add LazyQuoteEmbed for composer use * Clean up unused things * Remove remaining items * Prettier * Fix imports * Handle nested quotes same as prod * Add back silenced error handling * Fix lint --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
This commit is contained in:
@@ -1,19 +1,20 @@
|
||||
import React from 'react'
|
||||
import {StyleProp, View, ViewStyle} from 'react-native'
|
||||
import {type StyleProp, View, type ViewStyle} from 'react-native'
|
||||
|
||||
import {cleanError} from '#/lib/strings/errors'
|
||||
import {
|
||||
useResolveGifQuery,
|
||||
useResolveLinkQuery,
|
||||
} from '#/state/queries/resolve-link'
|
||||
import {Gif} from '#/state/queries/tenor'
|
||||
import {type Gif} from '#/state/queries/tenor'
|
||||
import {ExternalEmbedRemoveBtn} from '#/view/com/composer/ExternalEmbedRemoveBtn'
|
||||
import {ExternalLinkEmbed} from '#/view/com/util/post-embeds/ExternalLinkEmbed'
|
||||
import {atoms as a, useTheme} from '#/alf'
|
||||
import {Loader} from '#/components/Loader'
|
||||
import {ExternalEmbed} from '#/components/Post/Embed/ExternalEmbed'
|
||||
import {ModeratedFeedEmbed} from '#/components/Post/Embed/FeedEmbed'
|
||||
import {ModeratedListEmbed} from '#/components/Post/Embed/ListEmbed'
|
||||
import {Embed as StarterPackEmbed} from '#/components/StarterPack/StarterPackCard'
|
||||
import {Text} from '#/components/Typography'
|
||||
import {MaybeFeedCard, MaybeListCard} from '../util/post-embeds'
|
||||
|
||||
export const ExternalEmbedGif = ({
|
||||
onRemove,
|
||||
@@ -44,7 +45,7 @@ export const ExternalEmbedGif = ({
|
||||
<View style={[a.overflow_hidden, t.atoms.border_contrast_medium]}>
|
||||
{linkInfo ? (
|
||||
<View style={{pointerEvents: 'auto'}}>
|
||||
<ExternalLinkEmbed link={linkInfo} hideAlt />
|
||||
<ExternalEmbed link={linkInfo} hideAlt />
|
||||
</View>
|
||||
) : error ? (
|
||||
<Container style={[a.align_start, a.p_md, a.gap_xs]}>
|
||||
@@ -80,7 +81,7 @@ export const ExternalEmbedLink = ({
|
||||
if (data) {
|
||||
if (data.type === 'external') {
|
||||
return (
|
||||
<ExternalLinkEmbed
|
||||
<ExternalEmbed
|
||||
link={{
|
||||
title: data.title || uri,
|
||||
uri,
|
||||
@@ -91,9 +92,29 @@ export const ExternalEmbedLink = ({
|
||||
/>
|
||||
)
|
||||
} else if (data.kind === 'feed') {
|
||||
return <MaybeFeedCard view={data.view} />
|
||||
return (
|
||||
<ModeratedFeedEmbed
|
||||
embed={{
|
||||
type: 'feed',
|
||||
view: {
|
||||
$type: 'app.bsky.feed.defs#generatorView',
|
||||
...data.view,
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)
|
||||
} else if (data.kind === 'list') {
|
||||
return <MaybeListCard view={data.view} />
|
||||
return (
|
||||
<ModeratedListEmbed
|
||||
embed={{
|
||||
type: 'list',
|
||||
view: {
|
||||
$type: 'app.bsky.graph.defs#listView',
|
||||
...data.view,
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)
|
||||
} else if (data.kind === 'starter-pack') {
|
||||
return <StarterPackEmbed starterPack={data.view} />
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user