import React, { useState } from 'react'; import { Image, ImageBackground } from 'react-native'; import BaseAvatar, { BaseAvatarSize } from '../BaseAvatar'; import { TokenAvatarProps } from './TokenAvatar.types'; import BaseText, { BaseTextVariant } from '../BaseText'; import stylesheet from './TokenAvatar.styles'; import { useStyles } from '../../../component-library/hooks'; import { TOKEN_AVATAR_IMAGE_ID } from '../../../constants/test-ids'; const TokenAvatar = ({ size, style, tokenName, tokenImageUrl, showHalo, }: TokenAvatarProps) => { const [showFallback, setShowFallback] = useState(!tokenImageUrl); const { styles } = useStyles(stylesheet, { style, size, showHalo, showFallback, }); const textVariant = size === BaseAvatarSize.Sm || size === BaseAvatarSize.Xs ? BaseTextVariant.lBodySM : BaseTextVariant.lBodyMD; const tokenNameFirstLetter = tokenName?.[0] ?? '?'; const onError = () => setShowFallback(true); const tokenImage = () => ( {showFallback ? ( {tokenNameFirstLetter} ) : ( )} ); return !showHalo || showFallback ? ( tokenImage() ) : ( {tokenImage()} ); }; export default TokenAvatar;