From 4b8d8cf618a5d157ddde0b85c391cbfbca31779c Mon Sep 17 00:00:00 2001 From: Zhiting Lin Date: Thu, 27 Sep 2018 17:25:25 +0800 Subject: [PATCH] add the multi-address action for the normal transaction form. --- src/features/transactions/actions.js | 19 +++++++++------ .../components/New/ConfirmModal/ConfirmModal.jsx | 27 ++++++++++++---------- .../components/New/ConfirmModal/ConfirmModal.scss | 1 + 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/features/transactions/actions.js b/src/features/transactions/actions.js index 1d48f62..8a25417 100644 --- a/src/features/transactions/actions.js +++ b/src/features/transactions/actions.js @@ -20,6 +20,8 @@ function preprocessTransaction(formParams) { if (formParams.form === 'normalTx') { const gasPrice = formParams.state.estimateGas * Number(formParams.gasLevel) + const totalAmount = formParams.receivers.map(x => Number(x.amount)).reduce((prev, next) => prev + next) + const receivers = formParams.receivers builder.actions.push({ accountAlias: formParams.accountAlias, @@ -33,15 +35,18 @@ function preprocessTransaction(formParams) { accountId: formParams.accountId, assetAlias: formParams.assetAlias, assetId: formParams.assetId, - amount: formParams.amount, + amount: totalAmount, type: 'spend_account' }) - builder.actions.push({ - address: formParams.address, - assetAlias: formParams.assetAlias, - assetId: formParams.assetId, - amount: formParams.amount, - type: 'control_address' + + receivers.forEach((receiver)=>{ + builder.actions.push({ + address: receiver.address, + assetAlias: formParams.assetAlias, + assetId: formParams.assetId, + amount: receiver.amount, + type: 'control_address' + }) }) } diff --git a/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx b/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx index d795f8b..3409555 100644 --- a/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx +++ b/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx @@ -18,7 +18,7 @@ class ConfirmModal extends Component { render() { const { - fields: { accountId, accountAlias, assetId, assetAlias, address, amount, password, gasLevel }, + fields: { accountId, accountAlias, assetId, assetAlias, receivers, password, gasLevel }, handleSubmit, submitting, cancel, @@ -31,8 +31,10 @@ class ConfirmModal extends Component { const fee = Number(gasLevel.value * gas) + const totalAmount = receivers.map(x => Number(x.amount.value)).reduce((prev, next) => prev + next) + const Total = (assetAlias.value ==='BTM' ||assetId.value === btmID)? - (Number(amount.value) + fee): amount.value + (totalAmount + fee): totalAmount let submitLabel = lang === 'zh' ? '提交交易' : 'Submit transaction' @@ -63,15 +65,16 @@ class ConfirmModal extends Component { {accountAlias.value || accountId.value} - - To - {address.value} - - - {lang === 'zh'? '数量':'Amount'} - {normalize(amount.value, asset)} {unit} - + {receivers.map((receiver) => + [ + To + {receiver.address.value} + , + + {lang === 'zh'? '数量':'Amount'} + {normalize(receiver.amount.value, asset)} {unit} + ])} {lang === 'zh'?'手续费':'Fee'} @@ -137,11 +140,11 @@ export default reduxForm({ fields:[ 'accountAlias', 'accountId', - 'amount', 'assetAlias', 'assetId', + 'receivers[].amount', + 'receivers[].address', 'gasLevel', - 'address', 'password' ], destroyOnUnmount: false, diff --git a/src/features/transactions/components/New/ConfirmModal/ConfirmModal.scss b/src/features/transactions/components/New/ConfirmModal/ConfirmModal.scss index 48ea2d6..457f734 100644 --- a/src/features/transactions/components/New/ConfirmModal/ConfirmModal.scss +++ b/src/features/transactions/components/New/ConfirmModal/ConfirmModal.scss @@ -23,6 +23,7 @@ } .table{ + word-break: break-all; width: 100%; td{ padding: 4px 0px; -- 2.11.0