/* eslint-disable no-negated-condition */ import React, { useState } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { TRANSACTION_TYPES } from '../../../../../../shared/constants/transaction'; import { toChecksumHexAddress } from '../../../../../../shared/modules/hexstring-utils'; import { useI18nContext } from '../../../../../hooks/useI18nContext'; import useAddressDetails from '../../../../../hooks/useAddressDetails'; import Identicon from '../../../../ui/identicon'; import InfoTooltip from '../../../../ui/info-tooltip'; import NicknamePopovers from '../../../modals/nickname-popovers'; const ConfirmPageContainerSummary = (props) => { const { action, title, titleComponent, subtitleComponent, hideSubtitle, className, identiconAddress, nonce, origin, hideTitle, image, transactionType, toAddress, } = props; const [showNicknamePopovers, setShowNicknamePopovers] = useState(false); const t = useI18nContext(); const { toName, isTrusted } = useAddressDetails(toAddress); const isContractTypeTransaction = transactionType === TRANSACTION_TYPES.CONTRACT_INTERACTION; const checksummedAddress = toChecksumHexAddress(toAddress); const renderImage = () => { if (image) { return ( ); } else if (identiconAddress) { return ( ); } return null; }; return (
{origin === 'metamask' ? null : (
{origin}
)}
{isContractTypeTransaction && toName && ( : )} {action} {isContractTypeTransaction && isTrusted === false && ( )}
{nonce && (
{`#${nonce}`}
)}
<>
{renderImage()} {!hideTitle ? (
{titleComponent || title}
) : null}
{hideSubtitle ? null : (
{subtitleComponent}
)} {showNicknamePopovers && ( setShowNicknamePopovers(false)} address={checksummedAddress} /> )}
); }; ConfirmPageContainerSummary.propTypes = { action: PropTypes.string, title: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), image: PropTypes.string, titleComponent: PropTypes.node, subtitleComponent: PropTypes.node, hideSubtitle: PropTypes.bool, className: PropTypes.string, identiconAddress: PropTypes.string, nonce: PropTypes.string, origin: PropTypes.string.isRequired, hideTitle: PropTypes.bool, toAddress: PropTypes.string, transactionType: PropTypes.string, }; export default ConfirmPageContainerSummary;