UNPKG

react-typeahead

Version:

React-based typeahead and typeahead-tokenizer

64 lines (53 loc) 1.59 kB
var React = require('react'); var classNames = require('classnames'); /** * A single option within the TypeaheadSelector */ var TypeaheadOption = React.createClass({ displayName: 'TypeaheadOption', 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 React.createElement( 'li', { className: classList, onClick: this._onClick }, React.createElement( 'a', { href: 'javascript: void 0;', className: this._getClasses(), ref: 'anchor' }, this.props.children ) ); }, _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;