blob: 6a0bb97d15bb3dfc1c8690a429c7a6bc6ca7f8d1 [file] [log] [blame]
import React from 'react';
import './sq-input-range-slider.scss';
export default class SqInputRangeSlider extends React.Component {
constructor(props){
super(props);
this.state = {};
this.state.position = {
left: 50
};
this.className = "SqRangeInput";
}
updateHandle = (e) => {
this.props.onChange(e.target.valueAsNumber);
}
render() {
const {vertical, className, min, max, step, width, disabled, ...props} = this.props;
let class_name = this.className;
let dataListHTML = null;
let dataListOptions = null;
let dataListID = null;
let inputStyle = {};
let inputContainer = {
};
let style = {
width: width + 'px'
}
if(vertical) {
class_name += ' ' + this.className + '--vertical';
style.position = 'absolute';
style.left = (width * -1 + 32) + 'px';
style.width = width + 'px';
inputContainer.margin = '0 10px';
inputContainer.width = '70px';
inputContainer.height = (width + 40) + 'px';
inputContainer.background = 'white';
inputContainer.border = '1px solid #ccc';
} else {
class_name += ' ' + this.className + '--horizontal';
// style.position = 'absolute';
// style.top = 12 + 'px';
inputContainer.margin = '10px 0px';
inputContainer.height = '70px';
inputContainer.width = (width + 40) + 'px';
inputContainer.background = 'white';
inputContainer.border = '1px solid #ccc';
}
return (
<div className={this.className + '--container'} style={inputContainer}>
<div className={class_name + ' ' + className + (disabled ? ' is-disabled' : '')}>
<input
style={style}
orient= {vertical ? "vertical" : "horizontal"}
type="range"
onChange={this.updateHandle}
ref="range"
max={max}
min={min}
step={step}
disabled={disabled}
/>
</div>
</div>
)
}
}
SqInputRangeSlider.defaultProps = {
//Horizontal vs Vertical Slider
vertical: false,
//Override classes
className: '',
min:0,
max:100,
step: 1,
//width/length in px
width:100,
disabled: false,
onChange: function(value) {
console.log(value);
}
}