import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; import { TextColor } from '../../../helpers/constants/design-system'; import { PRIMARY, SECONDARY } from '../../../helpers/constants/common'; import { getPreferences, getUseCurrencyRateCheck, transactionFeeSelector, } from '../../../selectors'; import { getCurrentDraftTransaction } from '../../../ducks/send'; import { useGasFeeContext } from '../../../contexts/gasFee'; import { useI18nContext } from '../../../hooks/useI18nContext'; import Box from '../../ui/box'; import LoadingHeartBeat from '../../ui/loading-heartbeat'; import GasTiming from '../gas-timing/gas-timing.component'; import TransactionDetailItem from '../transaction-detail-item/transaction-detail-item.component'; import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display'; import { hexWEIToDecGWEI } from '../../../../shared/modules/conversion.utils'; import { useDraftTransactionGasValues } from '../../../hooks/useDraftTransactionGasValues'; import GasDetailsItemTitle from './gas-details-item-title'; const GasDetailsItem = ({ userAcknowledgedGasMissing = false }) => { const t = useI18nContext(); const draftTransaction = useSelector(getCurrentDraftTransaction); const { transactionData } = useDraftTransactionGasValues(); const { hexMinimumTransactionFee: draftHexMinimumTransactionFee, hexMaximumTransactionFee: draftHexMaximumTransactionFee, } = useSelector((state) => transactionFeeSelector(state, transactionData)); const { estimateUsed, hasSimulationError, maximumCostInHexWei: hexMaximumTransactionFee, minimumCostInHexWei: hexMinimumTransactionFee, maxPriorityFeePerGas, maxFeePerGas, } = useGasFeeContext(); const { useNativeCurrencyAsPrimaryCurrency } = useSelector(getPreferences); const useCurrencyRateCheck = useSelector(getUseCurrencyRateCheck); if (hasSimulationError && !userAcknowledgedGasMissing) { return null; } return ( } detailTitleColor={TextColor.textDefault} detailText={ useCurrencyRateCheck && Object.keys(draftTransaction).length === 0 && (
) } detailTotal={
} subText={ <> {estimateUsed === 'high' && '⚠ '} {t('editGasSubTextFeeLabel')}
} subTitle={ } /> ); }; GasDetailsItem.propTypes = { userAcknowledgedGasMissing: PropTypes.bool, }; export default GasDetailsItem;