-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathindex.js
110 lines (102 loc) · 3.54 KB
/
index.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
'use strict';
var React = require('react');
var ReactNative = require('react-native');
var {
StyleSheet,
Text,
View,
TouchableOpacity,
Modal,
PickerIOS,
Dimensions
} = ReactNative ;
var PickerItemIOS = PickerIOS.Item;
var SCREEN_WIDTH = Dimensions.get('window').width;
var Component = React.createClass({
show: function(){
this.setState({modalVisible: true});
},
getInitialState: function(){
return {
options: this.props.options,
labels: this.props.labels || this.props.options,
color: this.props.color || '#007AFF',
modalVisible: false,
selectedOption: this.props.options[0]
};
},
render: function() {
return (
<Modal
animationType={'slide'}
transparent={true}
visible={this.state.modalVisible}>
<View style={styles.basicContainer}>
<View style={styles.modalContainer}>
<View style={styles.buttonView}>
<TouchableOpacity onPress={() => {
this.setState({modalVisible: false});
}}>
<Text style={{color:this.state.color}}>Cancel</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => {
if(this.props.onSubmit) this.props.onSubmit(this.state.selectedOption);
this.setState({modalVisible: false});
}}>
<Text style={{color:this.state.color}}>Confirm</Text>
</TouchableOpacity>
</View>
<View style={styles.mainBox}>
{/*Model body*/}
<PickerIOS
ref={'picker'}
style={styles.bottomPicker}
selectedValue={this.state.selectedOption}
onValueChange={(option) => this.setState({selectedOption: option})}
>
{this.props.options.map((option, i) => {
var label = this.props.labels[i] || option;
return (
<PickerItemIOS
key={option}
value={option}
label={label}
/>
)
})}
</PickerIOS>
</View>
</View>
</View>
</Modal>
);
}
});
var styles = StyleSheet.create({
basicContainer:{
flex: 1,
justifyContent: 'flex-end',
alignItems: 'center',
},
modalContainer:{
width:SCREEN_WIDTH,
justifyContent: 'center',
alignItems: 'center',
padding:0,
backgroundColor: '#F5FCFF',
},
buttonView:{
width:SCREEN_WIDTH,
padding: 8,
borderTopWidth:0.5,
borderTopColor:'lightgrey',
justifyContent: 'space-between',
flexDirection:'row',
},
bottomPicker : {
width:SCREEN_WIDTH,
},
mainBox: {
}
});
module.exports = Component;