import React from 'react' import {StyleProp, View, ViewStyle} from 'react-native' import {ExternalEmbedDraft} from 'lib/api/index' import {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 {Text} from '#/components/Typography' export const ExternalEmbed = ({ link, onRemove, gif, }: { link?: ExternalEmbedDraft onRemove: () => void gif?: Gif }) => { const t = useTheme() const linkInfo = React.useMemo( () => link && { title: link.meta?.title ?? link.uri, uri: link.uri, description: link.meta?.description ?? '', thumb: link.localThumb?.path, }, [link], ) if (!link) return null const loadingStyle: ViewStyle | undefined = gif ? { aspectRatio: gif.media_formats.gif.dims[0] / gif.media_formats.gif.dims[1], width: '100%', } : undefined return ( {link.isLoading ? ( ) : link.meta?.error ? ( {link.uri} {link.meta?.error} ) : linkInfo ? ( ) : null} ) } function Container({ style, children, }: { style?: StyleProp children: React.ReactNode }) { const t = useTheme() return ( {children} ) }