import React, { useContext } from 'react'; import PropTypes from 'prop-types'; import { useDispatch, useSelector } from 'react-redux'; import QrView from '../../ui/qr-code'; import EditableLabel from '../../ui/editable-label/editable-label'; import { setAccountLabel } from '../../../store/actions'; import { getCurrentChainId, getHardwareWalletType, getMetaMaskKeyrings, } from '../../../selectors'; import { isAbleToExportAccount } from '../../../helpers/utils/util'; import { BUTTON_SECONDARY_SIZES, ButtonSecondary, Box, } from '../../component-library'; import { AlignItems, Display, FlexDirection, TextVariant, } from '../../../helpers/constants/design-system'; import { MetaMetricsContext } from '../../../contexts/metametrics'; import { MetaMetricsEventCategory, MetaMetricsEventKeyType, MetaMetricsEventName, } from '../../../../shared/constants/metametrics'; import { useI18nContext } from '../../../hooks/useI18nContext'; export const AccountDetailsDisplay = ({ accounts, accountName, address, onExportClick, }) => { const dispatch = useDispatch(); const trackEvent = useContext(MetaMetricsContext); const t = useI18nContext(); const keyrings = useSelector(getMetaMaskKeyrings); const keyring = keyrings.find((kr) => kr.accounts.includes(address)); const exportPrivateKeyFeatureEnabled = isAbleToExportAccount(keyring?.type); const chainId = useSelector(getCurrentChainId); const deviceName = useSelector(getHardwareWalletType); return ( { dispatch(setAccountLabel(address, label)); trackEvent({ category: MetaMetricsEventCategory.Accounts, event: MetaMetricsEventName.AccountRenamed, properties: { location: 'Account Details Modal', chain_id: chainId, account_hardware_type: deviceName, }, }); }} accounts={accounts} /> {exportPrivateKeyFeatureEnabled ? ( { trackEvent({ category: MetaMetricsEventCategory.Accounts, event: MetaMetricsEventName.KeyExportSelected, properties: { key_type: MetaMetricsEventKeyType.Pkey, location: 'Account Details Modal', }, }); onExportClick(); }} > {t('showPrivateKey')} ) : null} ); }; AccountDetailsDisplay.propTypes = { accounts: PropTypes.array.isRequired, accountName: PropTypes.string.isRequired, address: PropTypes.string.isRequired, onExportClick: PropTypes.func.isRequired, };