feature/default_network_editable
parent
5677fdaf68
commit
e56b8c5055
@ -0,0 +1,79 @@ |
||||
const Component = require('react').Component |
||||
const h = require('react-hyperscript') |
||||
const inherits = require('util').inherits |
||||
const InputNumber = require('./input-number.js') |
||||
|
||||
module.exports = GasTooltip |
||||
|
||||
inherits(GasTooltip, Component) |
||||
function GasTooltip () { |
||||
Component.call(this) |
||||
this.state = { |
||||
gasLimit: 0, |
||||
gasPrice: 0, |
||||
} |
||||
|
||||
this.updateGasPrice = this.updateGasPrice.bind(this); |
||||
this.updateGasLimit = this.updateGasLimit.bind(this); |
||||
} |
||||
|
||||
GasTooltip.prototype.componentWillMount == function () { |
||||
const { gasPrice = 0, gasLimit = 0 } = this.props |
||||
|
||||
this.setState({ gasPrice, gasLimit }); |
||||
} |
||||
|
||||
GasTooltip.prototype.updateGasPrice = function (newPrice) { |
||||
const { onFeeChange } = this.props |
||||
const { gasLimit } = this.state |
||||
|
||||
this.setState({ gasPrice: newPrice }) |
||||
onFeeChange({ gasLimit, gasPrice: newPrice }) |
||||
} |
||||
|
||||
GasTooltip.prototype.updateGasLimit = function (newLimit) { |
||||
const { onFeeChange } = this.props |
||||
const { gasPrice } = this.state |
||||
|
||||
this.setState({ gasLimit: newLimit }) |
||||
onFeeChange({ gasLimit: newLimit, gasPrice }) |
||||
} |
||||
|
||||
GasTooltip.prototype.render = function () { |
||||
const { position, title, children, className, isOpen } = this.props |
||||
const { gasPrice, gasLimit } = this.state |
||||
|
||||
return isOpen |
||||
? h('div.customize-gas-tooltip-container', {}, [ |
||||
h('div.customize-gas-tooltip', {}, [ |
||||
h('div.gas-tooltip-header.gas-tooltip-label', {}, ['Customize Gas']), |
||||
h('div.gas-tooltip-input-label', {}, [ |
||||
h('span.gas-tooltip-label', {}, ['Gas Price']), |
||||
h('i.fa.fa-info-circle') |
||||
]), |
||||
h(InputNumber, { |
||||
unitLabel: 'GWEI', |
||||
step: 0.0001, |
||||
min: 0.0000, |
||||
placeholder: '0.0000', |
||||
fixed: 4, |
||||
initValue: gasPrice, |
||||
onChange: (newPrice) => this.updateGasPrice(newPrice),
|
||||
}), |
||||
h('div.gas-tooltip-input-label', {}, [ |
||||
h('span.gas-tooltip-label', {}, ['Gas Limit']), |
||||
h('i.fa.fa-info-circle') |
||||
]), |
||||
h(InputNumber, { |
||||
unitLabel: 'UNITS', |
||||
step: 1, |
||||
min: 0, |
||||
placeholder: '0', |
||||
initValue: gasLimit, |
||||
onChange: (newLimit) => this.updateGasLimit(newLimit),
|
||||
}), |
||||
]), |
||||
h('div.gas-tooltip-arrow', {}), |
||||
]) |
||||
: null |
||||
} |
@ -0,0 +1,57 @@ |
||||
const Component = require('react').Component |
||||
const h = require('react-hyperscript') |
||||
const inherits = require('util').inherits |
||||
const findDOMNode = require('react-dom').findDOMNode |
||||
|
||||
module.exports = InputNumber |
||||
|
||||
inherits(InputNumber, Component) |
||||
function InputNumber () { |
||||
Component.call(this) |
||||
|
||||
this.state = { |
||||
value: 0, |
||||
} |
||||
|
||||
this.setValue = this.setValue.bind(this); |
||||
} |
||||
|
||||
InputNumber.prototype.componentWillMount == function () { |
||||
const { initValue = 0 } = this.props |
||||
|
||||
this.setState({ value: initValue }); |
||||
} |
||||
|
||||
InputNumber.prototype.setValue = function (newValue) { |
||||
const { fixed, min, onChange } = this.props |
||||
|
||||
if (fixed) newValue = Number(newValue.toFixed(4)) |
||||
|
||||
if (newValue >= min) { |
||||
this.setState({ value: newValue }) |
||||
onChange(newValue) |
||||
} |
||||
} |
||||
|
||||
InputNumber.prototype.render = function () { |
||||
const { unitLabel, step = 1, min, placeholder } = this.props |
||||
const { value } = this.state |
||||
|
||||
return h('div.customize-gas-input-wrapper', {}, [ |
||||
h('input.customize-gas-input', { |
||||
placeholder, |
||||
type: 'number', |
||||
value, |
||||
onChange: (e) => this.setValue(Number(e.target.value)) |
||||
}), |
||||
h('span.gas-tooltip-input-detail', {}, [unitLabel]), |
||||
h('div.gas-tooltip-input-arrows', {}, [ |
||||
h('i.fa.fa-angle-up', { |
||||
onClick: () => this.setValue(value + step) |
||||
}), |
||||
h('i.fa.fa-angle-down', { |
||||
onClick: () => this.setValue(value - step) |
||||
}), |
||||
]), |
||||
]) |
||||
} |
@ -1,66 +0,0 @@ |
||||
const Component = require('react').Component |
||||
const h = require('react-hyperscript') |
||||
const inherits = require('util').inherits |
||||
const findDOMNode = require('react-dom').findDOMNode |
||||
const ReactTooltip = require('react-tooltip') |
||||
|
||||
module.exports = NewTooltip |
||||
|
||||
inherits(NewTooltip, Component) |
||||
function NewTooltip () { |
||||
Component.call(this) |
||||
this.state = { |
||||
tooltipNode: null, |
||||
tooltipBase: null, |
||||
} |
||||
|
||||
// this.pageClick = this.pageClick.bind(this)
|
||||
} |
||||
|
||||
// NewTooltip.prototype.pageClick = function (e) {
|
||||
// // event.preventDefault();
|
||||
// const tooltipNode = this.state.tooltipNode
|
||||
// console.log(`e.target`, e.target);
|
||||
// console.log(`tooltipNode.contains(e.target)`, tooltipNode.contains(e.target));
|
||||
// },
|
||||
|
||||
NewTooltip.prototype.componentDidMount = function () { |
||||
const tooltipNode = findDOMNode(this); |
||||
const tooltipBase = findDOMNode(this.refs.tester) |
||||
|
||||
this.setState({ tooltipBase, tooltipNode }) |
||||
} |
||||
|
||||
NewTooltip.prototype.componentDidUpdate = function () { |
||||
const { show } = this.props |
||||
const tooltipBase = this.state.tooltipBase |
||||
const tooltipNode = this.state.tooltipNode |
||||
|
||||
if (show) { |
||||
ReactTooltip.show(tooltipBase) |
||||
} |
||||
else { |
||||
ReactTooltip.hide(tooltipBase) |
||||
}
|
||||
} |
||||
|
||||
NewTooltip.prototype.render = function () { |
||||
const props = this.props |
||||
const { position, title, children } = props |
||||
|
||||
return h('div', {}, [ |
||||
h('div', { |
||||
'data-tip': 'test', |
||||
'data-for': 'something', |
||||
'ref': 'tester', |
||||
}), |
||||
h(ReactTooltip, { |
||||
place: position || 'top', |
||||
effect: 'solid', |
||||
id: 'something', |
||||
className: 'send-tooltip', |
||||
type: 'light', |
||||
}, children), |
||||
]) |
||||
|
||||
} |
Loading…
Reference in new issue