import React from 'react'; import PropTypes from 'prop-types'; import Identicon from '../../ui/identicon'; import AccountMismatchWarning from '../../ui/account-mismatch-warning/account-mismatch-warning.component'; import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils'; export default function AccountListItem({ account, className, displayAddress = false, handleClick, icon = null, ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) hideDefaultMismatchWarning = false, ///: END:ONLY_INCLUDE_IN }) { const { name, address, balance } = account || {}; let showDefaultMismatchWarning = true; ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) showDefaultMismatchWarning = !hideDefaultMismatchWarning; ///: END:ONLY_INCLUDE_IN return (
handleClick?.({ name, address, balance })} >
{name || address}
{icon ? (
{icon}
) : null} {showDefaultMismatchWarning && ( )}
{displayAddress && name && (
{toChecksumHexAddress(address)}
)}
); } AccountListItem.propTypes = { /** * An account object that has name, address, and balance data */ account: PropTypes.shape({ address: PropTypes.string.isRequired, balance: PropTypes.string, name: PropTypes.string, }), /** * Additional className to add to the root div element of AccountListItem */ className: PropTypes.string, /** * Display the address of the account object */ displayAddress: PropTypes.bool, /** * The onClick handler of the AccountListItem */ handleClick: PropTypes.func, /** * Pass icon component to be displayed. Currently not used */ icon: PropTypes.node, ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) /** * MMI Prop, will hide the default AccountMismatchWarning when needed */ hideDefaultMismatchWarning: PropTypes.bool, ///: END:ONLY_INCLUDE_IN };