shierro/territory-manager

View on GitHub
app/components/AgeRangeSlider/index.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable jsx-a11y/label-has-for */
import React from 'react';
import PropTypes from 'prop-types';
import InputRange from 'react-input-range';
import { withStyles } from '@material-ui/core/styles';
import styles from './styles';

class AgeRangeSlider extends React.PureComponent {
  render() {
    const { classes, defaultValue, onChange, disabled, value } = this.props;
    return (
      <div className={classes.sliderContainer}>
        <label className={classes.ageRangeLabel}>Age range</label>
        <InputRange
          draggableTrack
          maxValue={defaultValue.max}
          minValue={defaultValue.min}
          value={value}
          onChange={onChange}
          disabled={disabled}
        />
      </div>
    );
  }
}

const ageRange = PropTypes.shape({
  min: PropTypes.number.isRequired,
  max: PropTypes.number.isRequired,
});

AgeRangeSlider.propTypes = {
  defaultValue: ageRange,
  value: ageRange,
  onChange: PropTypes.func,
  disabled: PropTypes.bool,
  classes: PropTypes.object.isRequired,
};

AgeRangeSlider.defaultProps = {
  disabled: false,
};

export default withStyles(styles)(AgeRangeSlider);