-
Notifications
You must be signed in to change notification settings - Fork 483
/
SelectRow.js
48 lines (40 loc) · 1.25 KB
/
SelectRow.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
// SelectRow.js
'use strict';
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import {Theme, ListRow, Select} from 'teaset';
export default class SelectRow extends ListRow {
static propTypes = {
...ListRow.propTypes,
value: PropTypes.any,
items: PropTypes.array,
getItemValue: PropTypes.func,
getItemText: PropTypes.func,
emptyText: PropTypes.string,
emptyTextColor: PropTypes.string,
onSelected: PropTypes.func.isRequired,
};
static defaultProps = {
...ListRow.defaultProps,
emptyText: 'Select item',
emptyTextColor: '#ff8f99',
};
renderDetail() {
let {title, detail, value, items, getItemValue, getItemText, emptyText, emptyTextColor, onSelected} = this.props;
return (
<Select
style={{borderWidth: 0, flex: 1}}
value={value}
valueStyle={{textAlign: 'right'}}
items={items}
getItemValue={getItemValue}
getItemText={getItemText}
editable={items && items.length > 0}
placeholder={emptyText}
placeholderTextColor={emptyTextColor}
pickerTitle={typeof title === 'string' ? title : null}
onSelected={(item, index) => onSelected && onSelected(items[index], index)}
/>
);
}
}