aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/customize-gas-modal
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2017-10-13 00:42:14 +0800
committerChi Kei Chan <chikeichan@gmail.com>2017-10-16 11:09:05 +0800
commita9244f5e426d6572ef135e07ab75a49c00e84942 (patch)
tree7aa7e1d98711ffbb2e27eb068b086c13238f421f /ui/app/components/customize-gas-modal
parenta59972dcabc56c3d92f09ba1b88a2ded70ce8c34 (diff)
downloadtangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar.gz
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar.bz2
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar.lz
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar.xz
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.tar.zst
tangerine-wallet-browser-a9244f5e426d6572ef135e07ab75a49c00e84942.zip
Customize Gas connected to state
Diffstat (limited to 'ui/app/components/customize-gas-modal')
-rw-r--r--ui/app/components/customize-gas-modal/index.js84
1 files changed, 71 insertions, 13 deletions
diff --git a/ui/app/components/customize-gas-modal/index.js b/ui/app/components/customize-gas-modal/index.js
index 91e2626b4..2df24b4e1 100644
--- a/ui/app/components/customize-gas-modal/index.js
+++ b/ui/app/components/customize-gas-modal/index.js
@@ -5,32 +5,90 @@ const connect = require('react-redux').connect
const actions = require('../../actions')
const GasModalCard = require('./gas-modal-card')
+const { conversionUtil } = require('../../conversion-util')
+
+const {
+ getGasPrice,
+ getGasLimit,
+ conversionRateSelector,
+} = require('../../selectors')
+
function mapStateToProps (state) {
- return {}
+ return {
+ gasPrice: getGasPrice(state),
+ gasLimit: getGasLimit(state),
+ conversionRate: conversionRateSelector(state),
+ }
}
function mapDispatchToProps (dispatch) {
return {
hideModal: () => dispatch(actions.hideModal()),
+ updateGasPrice: newGasPrice => dispatch(actions.updateGasPrice(newGasPrice)),
+ updateGasLimit: newGasLimit => dispatch(actions.updateGasLimit(newGasLimit)),
}
}
inherits(CustomizeGasModal, Component)
-function CustomizeGasModal () {
+function CustomizeGasModal (props) {
Component.call(this)
this.state = {
- gasPrice: '0.23',
- gasLimit: '25000',
+ gasPrice: props.gasPrice,
+ gasLimit: props.gasLimit,
}
}
module.exports = connect(mapStateToProps, mapDispatchToProps)(CustomizeGasModal)
+CustomizeGasModal.prototype.save = function (gasPrice, gasLimit) {
+ const {
+ updateGasPrice,
+ updateGasLimit,
+ hideModal,
+ } = this.props
+
+ updateGasPrice(gasPrice)
+ updateGasLimit(gasLimit)
+ hideModal()
+}
+
+CustomizeGasModal.prototype.convertAndSetGasLimit = function (newGasLimit) {
+ const convertedGasLimit = conversionUtil(newGasLimit, {
+ fromNumericBase: 'dec',
+ toNumericBase: 'hex',
+ })
+
+ this.setState({ gasLimit: convertedGasLimit })
+}
+
+CustomizeGasModal.prototype.convertAndSetGasPrice = function (newGasPrice) {
+ const convertedGasPrice = conversionUtil(newGasPrice, {
+ fromNumericBase: 'dec',
+ toNumericBase: 'hex',
+ fromDenomination: 'GWEI',
+ toDenomination: 'WEI',
+ })
+
+ this.setState({ gasPrice: convertedGasPrice })
+}
+
CustomizeGasModal.prototype.render = function () {
- const { hideModal } = this.props
+ const { hideModal, conversionRate } = this.props
const { gasPrice, gasLimit } = this.state
+ const convertedGasPrice = conversionUtil(gasPrice, {
+ fromNumericBase: 'hex',
+ toNumericBase: 'dec',
+ fromDenomination: 'WEI',
+ toDenomination: 'GWEI',
+ })
+
+ const convertedGasLimit = conversionUtil(gasLimit, {
+ fromNumericBase: 'hex',
+ toNumericBase: 'dec',
+ })
+
return h('div.send-v2__customize-gas', {}, [
h('div', {
}, [
@@ -47,21 +105,21 @@ CustomizeGasModal.prototype.render = function () {
h('div.send-v2__customize-gas__body', {}, [
h(GasModalCard, {
- value: gasPrice,
- min: 0.0,
- max: 5.0,
- step: 0.01,
- onChange: gasPrice => this.setState({ gasPrice }),
+ value: convertedGasPrice,
+ min: 0,
+ max: 1000,
+ step: 1,
+ onChange: value => this.convertAndSetGasPrice(value),
title: 'Gas Price',
copy: 'We calculate the suggested gas prices based on network success rates.',
}),
h(GasModalCard, {
- value: gasLimit,
+ value: convertedGasLimit,
min: 20000,
max: 100000,
step: 1,
- onChange: gasLimit => this.setState({ gasLimit }),
+ onChange: value => this.convertAndSetGasLimit(value),
title: 'Gas Limit',
copy: 'We calculate the suggested gas limit based on network success rates.',
}),
@@ -80,7 +138,7 @@ CustomizeGasModal.prototype.render = function () {
}, ['CANCEL']),
h('div.send-v2__customize-gas__save', {
- onClick: () => console.log('Save'),
+ onClick: () => this.save(gasPrice, gasLimit),
}, ['SAVE']),
])