-
Notifications
You must be signed in to change notification settings - Fork 222
Expand file tree
/
Copy pathoption.js
More file actions
61 lines (50 loc) · 1.45 KB
/
Copy pathoption.js
File metadata and controls
61 lines (50 loc) · 1.45 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
var React = require('react');
var classNames = require('classnames');
/**
* A single option within the TypeaheadSelector
*/
var TypeaheadOption = React.createClass({
propTypes: {
customClasses: React.PropTypes.object,
customValue: React.PropTypes.string,
onClick: React.PropTypes.func,
children: React.PropTypes.string,
hover: React.PropTypes.bool
},
getDefaultProps: function() {
return {
customClasses: {},
onClick: function(event) {
event.preventDefault();
}
};
},
render: function() {
var classes = {};
classes[this.props.customClasses.hover || "hover"] = !!this.props.hover;
classes[this.props.customClasses.listItem] = !!this.props.customClasses.listItem;
if (this.props.customValue) {
classes[this.props.customClasses.customAdd] = !!this.props.customClasses.customAdd;
}
var classList = classNames(classes);
return (
<li className={classList} onClick={this._onClick}>
<a href="javascript: void 0;" className={this._getClasses()}>
{ this.props.children }
</a>
</li>
);
},
_getClasses: function() {
var classes = {
"typeahead-option": true,
};
classes[this.props.customClasses.listAnchor] = !!this.props.customClasses.listAnchor;
return classNames(classes);
},
_onClick: function(event) {
event.preventDefault();
return this.props.onClick(event);
}
});
module.exports = TypeaheadOption;