diff options
Customize Gas connected to state
Diffstat (limited to 'ui/app/components/customize-gas-modal')
-rw-r--r-- | ui/app/components/customize-gas-modal/index.js | 84 |
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']), ]) |