diff options
Diffstat (limited to 'src/components/Post/Embed/LazyQuoteEmbed.tsx')
-rw-r--r-- | src/components/Post/Embed/LazyQuoteEmbed.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/components/Post/Embed/LazyQuoteEmbed.tsx b/src/components/Post/Embed/LazyQuoteEmbed.tsx new file mode 100644 index 000000000..fdc1c6309 --- /dev/null +++ b/src/components/Post/Embed/LazyQuoteEmbed.tsx @@ -0,0 +1,37 @@ +import {useMemo} from 'react' +import {View} from 'react-native' + +import {createEmbedViewRecordFromPost} from '#/state/queries/postgate/util' +import {useResolveLinkQuery} from '#/state/queries/resolve-link' +import {atoms as a, useTheme} from '#/alf' +import {QuoteEmbed} from '#/components/Post/Embed' + +export function LazyQuoteEmbed({uri}: {uri: string}) { + const t = useTheme() + const {data} = useResolveLinkQuery(uri) + + const view = useMemo(() => { + if (!data || data.type !== 'record' || data.kind !== 'post') return + return createEmbedViewRecordFromPost(data.view) + }, [data]) + + return view ? ( + <QuoteEmbed + embed={{ + type: 'post', + view, + }} + /> + ) : ( + <View + style={[ + a.w_full, + a.rounded_md, + t.atoms.bg_contrast_25, + { + height: 68, + }, + ]} + /> + ) +} |