UNPKG

react-typeahead

Version:

React-based typeahead and typeahead-tokenizer

62 lines (50 loc) 1.5 kB
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()} ref="anchor"> { 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;