import * as React from 'react' import { WithTranslation } from 'react-i18next' import { StyleSheet, Text, TextStyle, View } from 'react-native' import { defaultCountryCodeSelector } from 'src/account/selectors' import { formatShortenedAddress } from 'src/account/utils' import ContactCircle from 'src/components/ContactCircle' import PhoneNumberWithFlag from 'src/components/PhoneNumberWithFlag' import { withTranslation } from 'src/i18n' import { Recipient, getDisplayName } from 'src/recipients/recipient' import { useSelector } from 'src/redux/hooks' import { typeScale } from 'src/styles/fonts' const DEFAULT_ICON_SIZE = 40 interface OwnProps { recipient: Recipient e164Number?: string iconSize?: number displayNameStyle?: TextStyle } type Props = OwnProps & WithTranslation export function Avatar(props: Props) { const defaultCountryCode = useSelector(defaultCountryCodeSelector) ?? undefined const { recipient, e164Number, iconSize = DEFAULT_ICON_SIZE, displayNameStyle, t } = props const name = getDisplayName(recipient, t) const address = recipient.address const e164NumberToShow = recipient.e164PhoneNumber || e164Number return ( {name} {!!e164NumberToShow && ( )} {!e164NumberToShow && !!address && !!recipient.name && ( {formatShortenedAddress(address)} )} ) } const styles = StyleSheet.create({ container: { flexDirection: 'column', justifyContent: 'center', alignItems: 'center', marginBottom: 10, }, contactName: { ...typeScale.bodyXSmall, paddingTop: 6, marginHorizontal: 20, textAlign: 'center', }, }) export default withTranslation()(Avatar)