1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 16:18:07 +01:00
metamask-extension/ui/app/components/range-slider.js

59 lines
1.4 KiB
JavaScript
Raw Normal View History

2016-10-06 22:03:01 +02:00
const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
module.exports = RangeSlider
inherits(RangeSlider, Component)
function RangeSlider () {
Component.call(this)
}
RangeSlider.prototype.render = function () {
2016-10-13 04:35:09 +02:00
const state = this.state || {}
2016-10-06 22:03:01 +02:00
const props = this.props
2016-10-13 04:35:09 +02:00
const onInput = props.onInput || function () {}
2016-10-06 22:03:01 +02:00
const name = props.name
const {
min = 0,
max = 100,
increment = 1,
defaultValue = 50,
mirrorInput = false,
} = this.props.options
const {container, input, range} = props.style
return (
h('.flex-row', {
style: container,
}, [
h('input', {
type: 'range',
name: name,
min: min,
max: max,
step: increment,
style: range,
2016-10-13 04:35:09 +02:00
value: state.value || defaultValue,
2016-10-14 01:53:32 +02:00
onChange: mirrorInput ? this.mirrorInputs.bind(this, event) : onInput,
2016-10-06 22:03:01 +02:00
}),
// Mirrored input for range
mirrorInput ? h('input.large-input', {
type: 'number',
name: `${name}Mirror`,
min: min,
max: max,
2016-10-13 04:35:09 +02:00
value: state.value || defaultValue,
2016-10-06 22:03:01 +02:00
step: increment,
style: input,
2016-10-14 01:53:32 +02:00
onChange: this.mirrorInputs.bind(this, event),
2016-10-06 22:03:01 +02:00
}) : null,
])
)
}
2016-10-14 01:53:32 +02:00
RangeSlider.prototype.mirrorInputs = function (event) {
2016-10-13 04:35:09 +02:00
this.setState({value: event.target.value})
2016-10-06 22:03:01 +02:00
}