forked from Enrise/react-native-nmrangeslider-ios
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNMRangeSliderIOS.js
More file actions
66 lines (58 loc) · 1.66 KB
/
NMRangeSliderIOS.js
File metadata and controls
66 lines (58 loc) · 1.66 KB
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
import React from 'react';
import { Text, ColorPropType } from 'react-native';
const requireNativeComponent = require('react-native').requireNativeComponent;
const NMRangeSliderIOS = React.createClass({
propTypes: {
minimumValue: React.PropTypes.number,
maximumValue: React.PropTypes.number,
lowerValue: React.PropTypes.number,
lowerMaximumValue: React.PropTypes.number,
upperValue: React.PropTypes.number,
upperMinimumValue: React.PropTypes.number,
minimumRange: React.PropTypes.number,
stepValue: React.PropTypes.number,
stepValueContinuously: React.PropTypes.bool,
continuous: React.PropTypes.bool,
lowerCenter: React.PropTypes.object, // CGPoint?
upperCenter: React.PropTypes.object, // CGPoint?
onChange: React.PropTypes.func,
trackColor: ColorPropType,
disabled: React.PropTypes.bool,
},
componentDidMount() {
this.setState({...this.props});
},
componentWillReceiveProps(nextProps) {
this.setState(nextProps);
},
convertNativeEvent(event) {
return [
parseInt(event.nativeEvent.lowerValue, 10),
parseInt(event.nativeEvent.upperValue, 10),
];
},
_onChange: function(event) {
if (!this.props.onChange) {
return;
}
this.props.onChange(this.convertNativeEvent(event));
},
render: function() {
return (
<NMRangeSlider
{...this.props}
lowerValue={0}
upperValue={0}
disabled={false}
{...this.state}
onChange={this._onChange}
/>
)
}
});
const NMRangeSlider = requireNativeComponent('NMRangeSlider', NMRangeSliderIOS, {
nativeOnly: {
onChange: true,
},
});
module.exports = NMRangeSliderIOS;