UNPKG

backpack-ui

Version:
180 lines (137 loc) 5.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require("babel-runtime/helpers/defineProperty"); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of"); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = require("classnames"); var _classnames2 = _interopRequireDefault(_classnames); var _classNames = require("./utils/classNames"); var _classNames2 = _interopRequireDefault(_classNames); var _createClassList = require("./utils/createClassList"); var _createClassList2 = _interopRequireDefault(_createClassList); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * A single option within the TypeaheadSelector */ var TypeaheadOption = function (_Component) { (0, _inherits3.default)(TypeaheadOption, _Component); function TypeaheadOption(props) { (0, _classCallCheck3.default)(this, TypeaheadOption); var _this = (0, _possibleConstructorReturn3.default)(this, (TypeaheadOption.__proto__ || (0, _getPrototypeOf2.default)(TypeaheadOption)).call(this, props)); _this.onClick = _this.onClick.bind(_this); _this.onTouchStart = _this.onTouchStart.bind(_this); _this.onMouseOver = _this.onMouseOver.bind(_this); return _this; } (0, _createClass3.default)(TypeaheadOption, [{ key: "onClick", value: function onClick(event) { event.preventDefault(); return this.props.onClick(event); } }, { key: "onTouchStart", value: function onTouchStart(event) { event.preventDefault(); return this.props.onClick(event); } }, { key: "onMouseOver", value: function onMouseOver(event) { event.preventDefault(); return this.props.onMouseOver(event); } }, { key: "render", value: function render() { var _this2 = this; var _props = this.props, customClasses = _props.customClasses, disableDefaultClassNames = _props.disableDefaultClassNames, customValue = _props.customValue, children = _props.children, hover = _props.hover, activeDescendantId = _props.activeDescendantId; var classes = (0, _defineProperty3.default)({}, _classNames2.default.listItem, !disableDefaultClassNames); classes[customClasses.hover || _classNames2.default.hover] = !!hover; classes[customClasses.listItem] = !!customClasses.listItem; if (customValue) { classes[customClasses.customAdd || _classNames2.default.customAdd] = !!customClasses.customAdd; } var classList = (0, _classnames2.default)(classes); var optionClassList = (0, _createClassList2.default)(customClasses.listAnchor, "listAnchor", disableDefaultClassNames); return _react2.default.createElement( "li", { // eslint-disable-line jsx-a11y/no-static-element-interactions id: hover ? activeDescendantId : null, className: classList, role: "option", "aria-selected": hover, onClick: this.onClick, onTouchStart: this.onTouchStart, onMouseDown: this.onClick // https://github.com/fmoo/react-typeahead/pull/235 , onMouseOver: this.onMouseOver }, _react2.default.createElement( "div", { className: optionClassList, ref: function ref(node) { return _this2.option = node; }, style: { cursor: "default" } }, children ) ); } }]); return TypeaheadOption; }(_react.Component); TypeaheadOption.propTypes = { customClasses: _propTypes2.default.shape({ customAdd: _propTypes2.default.string, hover: _propTypes2.default.string, listAnchor: _propTypes2.default.string, listItem: _propTypes2.default.string }), customValue: _propTypes2.default.string, onClick: _propTypes2.default.func, onMouseOver: _propTypes2.default.func, children: _propTypes2.default.string, hover: _propTypes2.default.bool, activeDescendantId: _propTypes2.default.string, disableDefaultClassNames: _propTypes2.default.bool }; TypeaheadOption.defaultProps = { customClasses: null, customValue: null, onClick: function onClick(event) { event.preventDefault(); }, onMouseOver: function onMouseOver(event) { event.preventDefault(); }, children: null, hover: false, activeDescendantId: "", disableDefaultClassNames: false }; exports.default = TypeaheadOption;