summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/app/containers/Forms/demos/RangeInput.js
blob: 247050e40509027c8c6bd8d511f075cf39d14f35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import React, { Fragment, PureComponent } from 'react';
import PropTypes from 'prop-types';
import InputRange from 'react-input-range';
import { withStyles } from '@material-ui/core/styles';
import 'ba-styles/vendors/react-input-range/react-input-range.css';

import { FormControl, Typography, Grid } from '@material-ui/core';

const styles = theme => ({
  demo: {
    height: 'auto',
  },
  divider: {
    display: 'block',
    margin: `${theme.spacing(3)}px 0`,
  },
  inputRange: {
    width: 300,
    margin: `${theme.spacing(3)}px 5px`,
  }
});

class RangeInput extends PureComponent {
  state = {
    valueRange: {
      min: 3,
      max: 7,
    },
    valueRangeLabel: {
      min: 5,
      max: 10,
    },
  }

  render() {
    const { classes } = this.props;
    return (
      <Fragment>
        <Grid
          container
          alignItems="flex-start"
          justify="space-around"
          direction="row"
          spacing={2}
        >
          <Grid
            item
            md={6}
            className={classes.demo}
          >
            <Typography variant="button" className={classes.divider}>Range Input Basic</Typography>
            <FormControl className={classes.formControl}>
              <div className={classes.inputRange}>
                <InputRange
                  draggableTrack
                  maxValue={20}
                  minValue={0}
                  onChange={value => this.setState({ valueRange: value })}
                  value={this.state.valueRange}
                />
              </div>
            </FormControl>
          </Grid>
          <Grid
            item
            md={6}
            className={classes.demo}
          >
            <Typography variant="button" className={classes.divider}>Range with Label</Typography>
            <FormControl className={classes.formControl}>
              <div className={classes.inputRange}>
                <InputRange
                  maxValue={20}
                  minValue={0}
                  formatLabel={value => `${value} kg`}
                  value={this.state.valueRangeLabel}
                  onChange={value => this.setState({ valueRangeLabel: value })}
                />
              </div>
            </FormControl>
          </Grid>
        </Grid>
      </Fragment>
    );
  }
}

RangeInput.propTypes = {
  classes: PropTypes.object.isRequired,
};

export default withStyles(styles)(RangeInput);