1 |
|
2 |
|
3 | var React = require("react");
|
4 | var PropTypes = React.PropTypes;
|
5 | var TangleText = require("react-tangle");
|
6 |
|
7 | var LabelledTangle = React.createClass({
|
8 |
|
9 | propTypes: {
|
10 | className: PropTypes.string,
|
11 | onChange: PropTypes.func,
|
12 | onInput: PropTypes.func,
|
13 | min: PropTypes.number,
|
14 | max: PropTypes.number,
|
15 | pixelDistance: PropTypes.number,
|
16 | step: PropTypes.number,
|
17 | value: PropTypes.number.isRequired
|
18 | },
|
19 |
|
20 | getDefaultProps: function() {
|
21 | return {
|
22 | pixelDistance: 10,
|
23 | step: 1
|
24 | };
|
25 | },
|
26 |
|
27 | render: function() {
|
28 | return (
|
29 | <div className={["cb-labelled-tangle", this.props.className].join(" ")}>
|
30 | <label className={this.props.labelClass}>{this.props.label}</label>
|
31 | <TangleText
|
32 | className={["cb-tangle", this.props.tangleClass].join(" ")}
|
33 | onChange={this.props.onChange}
|
34 | onInput={this.props.onInput}
|
35 | min={this.props.min}
|
36 | max={this.props.max}
|
37 | step={this.props.step}
|
38 | value={this.props.value}
|
39 | pixelDistance={this.props.pixelDistance}
|
40 | />
|
41 | </div>
|
42 | );
|
43 | }
|
44 | });
|
45 |
|
46 | module.exports = LabelledTangle;
|