import React, { Component } from 'react'; import PropTypes from 'prop-types'; import SenderToRecipient from '../../ui/sender-to-recipient'; import { PageContainerFooter } from '../../ui/page-container'; import EditGasPopover from '../edit-gas-popover'; import { EDIT_GAS_MODES } from '../../../../shared/constants/gas'; import { ConfirmPageContainerHeader, ConfirmPageContainerContent, ConfirmPageContainerNavigation, } from '.'; export default class ConfirmPageContainer extends Component { static contextTypes = { t: PropTypes.func, }; static propTypes = { // Header action: PropTypes.string, hideSubtitle: PropTypes.bool, onEdit: PropTypes.func, showEdit: PropTypes.bool, subtitleComponent: PropTypes.node, title: PropTypes.string, titleComponent: PropTypes.node, hideSenderToRecipient: PropTypes.bool, showAccountInHeader: PropTypes.bool, // Sender to Recipient fromAddress: PropTypes.string, fromName: PropTypes.string, toAddress: PropTypes.string, toName: PropTypes.string, toEns: PropTypes.string, toNickname: PropTypes.string, // Content contentComponent: PropTypes.node, errorKey: PropTypes.string, errorMessage: PropTypes.string, dataComponent: PropTypes.node, detailsComponent: PropTypes.node, identiconAddress: PropTypes.string, nonce: PropTypes.string, assetImage: PropTypes.string, warning: PropTypes.string, unapprovedTxCount: PropTypes.number, origin: PropTypes.string.isRequired, ethGasPriceWarning: PropTypes.string, // Navigation totalTx: PropTypes.number, positionOfCurrentTx: PropTypes.number, nextTxId: PropTypes.string, prevTxId: PropTypes.string, showNavigation: PropTypes.bool, onNextTx: PropTypes.func, firstTx: PropTypes.string, lastTx: PropTypes.string, ofText: PropTypes.string, requestsWaitingText: PropTypes.string, // Footer onCancelAll: PropTypes.func, onCancel: PropTypes.func, onSubmit: PropTypes.func, disabled: PropTypes.bool, editingGas: PropTypes.bool, handleCloseEditGas: PropTypes.func, // Gas Popover currentTransaction: PropTypes.object.isRequired, }; render() { const { showEdit, onEdit, fromName, fromAddress, toName, toEns, toNickname, toAddress, disabled, errorKey, errorMessage, contentComponent, action, title, titleComponent, subtitleComponent, hideSubtitle, detailsComponent, dataComponent, onCancelAll, onCancel, onSubmit, identiconAddress, nonce, unapprovedTxCount, assetImage, warning, totalTx, positionOfCurrentTx, nextTxId, prevTxId, showNavigation, onNextTx, firstTx, lastTx, ofText, requestsWaitingText, hideSenderToRecipient, showAccountInHeader, origin, ethGasPriceWarning, editingGas, handleCloseEditGas, currentTransaction, } = this.props; const renderAssetImage = contentComponent || !identiconAddress; return (
onNextTx(txId)} firstTx={firstTx} lastTx={lastTx} ofText={ofText} requestsWaitingText={requestsWaitingText} /> onEdit()} showAccountInHeader={showAccountInHeader} accountAddress={fromAddress} > {hideSenderToRecipient ? null : ( )} {contentComponent || ( )} {contentComponent && ( {unapprovedTxCount > 1 && ( {this.context.t('rejectTxsN', [unapprovedTxCount])} )} )} {editingGas && ( )}
); } }