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
};