UNPKG

antd

Version:

An enterprise-class UI design language and React-based implementation

138 lines (103 loc) 4.68 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = undefined; var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); 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 _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _PureRenderMixin = require('rc-util/lib/PureRenderMixin'); var _PureRenderMixin2 = _interopRequireDefault(_PureRenderMixin); var _objectAssign = require('object-assign'); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _reactLazyLoad = require('react-lazy-load'); var _reactLazyLoad2 = _interopRequireDefault(_reactLazyLoad); var _checkbox = require('../checkbox'); var _checkbox2 = _interopRequireDefault(_checkbox); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function isRenderResultPlainObject(result) { return result && !_react2["default"].isValidElement(result) && Object.prototype.toString.call(result) === '[object Object]'; } var Item = function (_React$Component) { (0, _inherits3["default"])(Item, _React$Component); function Item() { (0, _classCallCheck3["default"])(this, Item); var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.apply(this, arguments)); _this.matchFilter = function (text) { var _this$props = _this.props, filter = _this$props.filter, filterOption = _this$props.filterOption, item = _this$props.item; if (filterOption) { return filterOption(filter, item); } return text.indexOf(filter) >= 0; }; return _this; } Item.prototype.shouldComponentUpdate = function shouldComponentUpdate() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _PureRenderMixin2["default"].shouldComponentUpdate.apply(this, args); }; Item.prototype.render = function render() { var _classNames; var _props = this.props, render = _props.render, filter = _props.filter, item = _props.item, lazy = _props.lazy, checked = _props.checked, prefixCls = _props.prefixCls, onClick = _props.onClick; var renderResult = render(item); var renderedText = void 0; var renderedEl = void 0; if (isRenderResultPlainObject(renderResult)) { renderedText = renderResult.value; renderedEl = renderResult.label; } else { renderedText = renderResult; renderedEl = renderResult; } if (filter && filter.trim() && !this.matchFilter(renderedText)) { return null; } var className = (0, _classnames2["default"])((_classNames = {}, (0, _defineProperty3["default"])(_classNames, prefixCls + '-content-item', true), (0, _defineProperty3["default"])(_classNames, prefixCls + '-content-item-disabled', item.disabled), _classNames)); var lazyProps = (0, _objectAssign2["default"])({ height: 32, offset: 500, throttle: 0, debounce: false }, lazy); return _react2["default"].createElement( _reactLazyLoad2["default"], lazyProps, _react2["default"].createElement( 'li', { className: className, title: renderedText, onClick: item.disabled ? undefined : function () { return onClick(item); } }, _react2["default"].createElement(_checkbox2["default"], { checked: checked, disabled: item.disabled }), _react2["default"].createElement( 'span', null, renderedEl ) ) ); }; return Item; }(_react2["default"].Component); exports["default"] = Item; module.exports = exports['default'];