import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { useSelector } from 'react-redux'; import { TextColor, IconColor, AlignItems, DISPLAY, JustifyContent, BackgroundColor, } from '../../../../helpers/constants/design-system'; import { getSnapName } from '../../../../helpers/utils/util'; import { AvatarFavicon, BadgeWrapper, BadgeWrapperPosition, AvatarIcon, AvatarBase, IconName, IconSize, } from '../../../component-library'; import { getTargetSubjectMetadata } from '../../../../selectors'; const SnapAvatar = ({ snapId, badgeSize = IconSize.Sm, avatarSize = IconSize.Lg, borderWidth = 2, className, }) => { const subjectMetadata = useSelector((state) => getTargetSubjectMetadata(state, snapId), ); const friendlyName = snapId && getSnapName(snapId, subjectMetadata); const iconUrl = subjectMetadata?.iconUrl; const fallbackIcon = friendlyName && friendlyName[0] ? friendlyName[0] : '?'; return ( } position={BadgeWrapperPosition.bottomRight} > {iconUrl ? ( ) : ( {fallbackIcon} )} ); }; SnapAvatar.propTypes = { /** * The id of the snap */ snapId: PropTypes.string, badgeSize: PropTypes.string, avatarSize: PropTypes.string, borderWidth: PropTypes.number, /** * The className of the SnapAvatar */ className: PropTypes.string, }; export default SnapAvatar;