-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTimePickerAndroid.js
74 lines (64 loc) · 1.75 KB
/
TimePickerAndroid.js
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
'use strict'
var React = require('react-native');
var { requireNativeComponent, PropTypes, StyleSheet, View, Text } = React;
var TimePickerClock = requireNativeComponent('ClockTimePickerAndroid', TimePickerAndroid);
var TimePickerSpinner = requireNativeComponent('SpinnerTimePickerAndroid', TimePickerAndroid);
var TimePickerAndroid = React.createClass({
PropTypes: {
...View.propTypes,
onTimeChange: PropTypes.func
},
getDefaultProps() {
return {
spinnerMode: true
};
},
getInitialState() {
return {
hours: '00',
minutes: '00'
};
},
_onTimeChange(event) {
var hours = event.nativeEvent.hours;
var minutes = event.nativeEvent.minutes;
this.state.hours = hours < 10 ? '0' + hours : hours.toString();
this.state.minutes = minutes < 10 ? '0' + minutes : minutes.toString();
this.setState(this.state);
},
render() {
var TimePicker = this.props.spinnerMode ? TimePickerSpinner : TimePickerClock;
var timePickerStyle = this.props.spinnerMode ? styles.timePickerSpinner : styles.timePickerClock;
return (
<View style={styles.container}>
<TimePicker style={timePickerStyle}
onTimeChange={this._onTimeChange}/>
<Text style={styles.selectedTime}>
{this.state.hours + ':' + this.state.minutes}
</Text>
</View>
)
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF'
},
timePickerSpinner: {
width: 300,
height: 300
},
timePickerClock: {
width: 300,
height: 400
},
selectedTime: {
textAlign: 'center',
color: '#333333',
marginTop: 5
},
});
module.exports = TimePickerAndroid;