import React, { Component } from 'react' import {reduxForm} from 'redux-form' import { PasswordField, ErrorBanner, SubmitIndicator } from 'features/shared/components' import { btmID } from 'utility/environment' import { sum } from 'utility/math' import { normalizeBTMAmountUnit, converIntToDec } from 'utility/buildInOutDisplay' import styles from './ConfirmModal.scss' import { Link } from 'react-router' import {withNamespaces} from 'react-i18next' class ConfirmModal extends Component { constructor(props) { super(props) } render() { const { fields: { accountId, accountAlias, assetId, assetAlias, receivers, password, gasLevel }, handleSubmit, submitting, cancel, error, gas, chainGas, t, btmAmountUnit, assetDecimal } = this.props const fee = Number( (chainGas||0 ) + gasLevel.value * gas ) const totalAmount = sum(receivers, 'amount.value') const Total = (assetAlias.value ==='BTM' ||assetId.value === btmID)? (totalAmount + fee): totalAmount let submitLabel = t('transaction.new.submit') const normalize = (value, asset) => { if (asset === btmID || asset === 'BTM'){ return normalizeBTMAmountUnit(btmID, value, btmAmountUnit) }else if( assetDecimal ){ return converIntToDec(value, assetDecimal) }else{ return value } } const findAssetById = assetId.value && this.props.asset.find(i => i.id === assetId.value) const findAssetByAlias = assetAlias.value && this.props.asset.find(i => i.alias === assetAlias.value) const asset = assetAlias.value || ( findAssetById && findAssetById.alias ) || assetId.value const assetIdLink = assetId.value || ( findAssetByAlias && findAssetByAlias.id ) const unit = {(asset !== btmID && asset !== 'BTM') && asset} return (

{ t('transaction.normal.confirmation') }

{receivers.map((receiver) => [, , ])}
From {accountAlias.value || accountId.value}
To {receiver.address.value}
{t('form.amount')} {normalize(receiver.amount.value, asset)} {unit}
{t('form.fee')} {normalizeBTMAmountUnit(btmID, fee, btmAmountUnit)}
{t('transaction.normal.total')} {normalize(Total, asset)} {unit}

{error && error.message === 'PasswordWrong' && }
{submitting && }
) } } const validate = values => { const errors = {} if (!values.password) { errors.password = 'Required' } return errors } export default withNamespaces('translations') (reduxForm({ form: 'NormalTransactionForm', fields:[ 'accountAlias', 'accountId', 'assetAlias', 'assetId', 'receivers[].amount', 'receivers[].address', 'gasLevel', 'isChainTx', 'password' ], destroyOnUnmount: false, validate })(ConfirmModal))