-
Notifications
You must be signed in to change notification settings - Fork 320
Expand file tree
/
Copy pathSimpleListItem.js
More file actions
126 lines (110 loc) · 2.38 KB
/
SimpleListItem.js
File metadata and controls
126 lines (110 loc) · 2.38 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
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var React = require('react-native');
var {
View,
StyleSheet,
TouchableHighlight
} = React;
var ParsedText = require('react-native-parsed-text');
var cssVar = require('../Lib/cssVar');
var Text = require('../Components/Text');
var AppActions = require('../Actions/AppActions');
var SimpleListItem = React.createClass({
onSelection: function() {
AppActions.launchRelativeItem(this.props.currentRoute, this.props);
},
renderTitle: function() {
if (!this.props.title) return null;
if (this.props.parseTitle) {
return (
<ParsedText
parse={this.props.parseTitle}
style={styles.title}
>
{this.props.title}
</ParsedText>
)
}
return (
<Text style={styles.title}>
{this.props.title}
</Text>
);
},
renderSubtitle: function() {
if (!this.props.subtitle) return null;
return (
<Text style={styles.subtitle}>
{this.props.subtitle}
</Text>
);
},
renderRightIcon: function() {
if (!this.props.nextIcon) return null;
// caret-right-semi
return (
<Text style={styles.rightIcon}>
>
</Text>
);
},
renderContent: function() {
return (
<View style={[styles.row, this.props.noTap && styles.touch]}>
<View style={styles.left}>
{this.renderTitle()}
{this.renderSubtitle()}
</View>
<View style={styles.right}>
{this.renderRightIcon()}
</View>
</View>
);
},
render: function() {
if (this.props.noTap) {
return this.renderContent();
}
return (
<View>
<TouchableHighlight
style={styles.touch}
underlayColor={cssVar('gray10')}
onPress={this.onSelection}
>
{this.renderContent()}
</TouchableHighlight>
<View style={cssVar('listFullLine')} />
</View>
);
}
});
var styles = StyleSheet.create({
touch: {
backgroundColor: 'white'
},
row: {
flex: 1,
flexDirection: 'row',
alignItems: 'center',
padding:20
},
title: {
fontSize: 18,
},
subtitle: {
paddingTop: 5,
fontSize: 14,
color: cssVar('gray20'),
},
left: {
flex: 1,
},
right: {
},
rightIcon: {
fontFamily: cssVar('fontIcon'),
color: cssVar('gray30'),
fontSize: 12,
}
});
module.exports = SimpleListItem;