import React from 'react' import { ActivityIndicator, StyleSheet, TouchableWithoutFeedback, View, } from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {BlurView} from '../util/BlurView' import LinearGradient from 'react-native-linear-gradient' import {AutoSizedImage} from '../util/images/AutoSizedImage' import {Text} from '../util/text/Text' import {s, gradients} from '../../lib/styles' import {usePalette} from '../../lib/hooks/usePalette' import {ExternalEmbedDraft} from '../../../state/lib/api' export const ExternalEmbed = ({ link, onRemove, }: { link?: ExternalEmbedDraft onRemove: () => void }) => { const pal = usePalette('default') const palError = usePalette('error') if (!link) { return } return ( {link.isLoading ? ( ) : link.localThumb ? ( ) : ( )} {!!link.meta?.title && ( {link.meta.title} )} {link.uri} {!!link.meta?.description && ( {link.meta.description} )} {!!link.meta?.error && ( {link.meta.error} )} ) } const styles = StyleSheet.create({ outer: { borderWidth: 1, borderRadius: 8, marginTop: 20, }, inner: { padding: 10, }, image: { borderTopLeftRadius: 6, borderTopRightRadius: 6, width: '100%', height: 200, }, imageFallback: { height: 160, }, removeBtn: { position: 'absolute', top: 10, right: 10, width: 36, height: 36, borderRadius: 18, alignItems: 'center', justifyContent: 'center', }, spinner: { marginTop: 60, }, uri: { marginTop: 2, }, description: { marginTop: 4, }, })