import React from 'react' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {AutoSizedImage} from '../util/images/AutoSizedImage' import {Text} from '../util/text/Text' import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {ExternalEmbedDraft} from 'lib/api/index' 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 ? ( ) : undefined} {!!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, marginBottom: 10, }, inner: { padding: 10, }, image: { borderTopLeftRadius: 6, borderTopRightRadius: 6, width: '100%', maxHeight: 200, }, removeBtn: { position: 'absolute', top: 10, right: 10, width: 36, height: 36, backgroundColor: 'rgba(0, 0, 0, 0.75)', borderRadius: 18, alignItems: 'center', justifyContent: 'center', }, spinner: { marginTop: 60, }, uri: { marginTop: 2, }, description: { marginTop: 4, }, })