import React from 'react' import {Image} from 'expo-image' import {Text} from '../text/Text' import {StyleSheet, View} from 'react-native' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {AppBskyEmbedExternal} from '@atproto/api' import {toNiceDomain} from 'lib/strings/url-helpers' import {parseEmbedPlayerFromUrl} from 'lib/strings/embed-player' import {ExternalPlayer} from 'view/com/util/post-embeds/ExternalPlayerEmbed' export const ExternalLinkEmbed = ({ link, }: { link: AppBskyEmbedExternal.ViewExternal }) => { const pal = usePalette('default') const {isMobile} = useWebMediaQueries() const embedPlayerParams = React.useMemo( () => parseEmbedPlayerFromUrl(link.uri), [link.uri], ) return ( {link.thumb && !embedPlayerParams ? ( ) : undefined} {embedPlayerParams && ( )} {toNiceDomain(link.uri)} {link.title || link.uri} {link.description ? ( {link.description} ) : undefined} ) } const styles = StyleSheet.create({ extImage: { width: '100%', height: 200, }, extUri: { marginTop: 2, }, extDescription: { marginTop: 4, }, })