modo-mobile
Version:
A mobile UI toolkit, based on React
103 lines (95 loc) • 4.39 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _defineProperty from 'babel-runtime/helpers/defineProperty';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
var __rest = this && this.__rest || function (s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
}return t;
};
import * as React from 'react';
import classnames from 'classnames';
import Icon from '../icon';
var ListItem = function (_React$PureComponent) {
_inherits(ListItem, _React$PureComponent);
function ListItem() {
_classCallCheck(this, ListItem);
return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));
}
_createClass(ListItem, [{
key: 'render',
value: function render() {
var _classnames;
var _a = this.props,
prefixCls = _a.prefixCls,
children = _a.children,
className = _a.className,
style = _a.style,
disabled = _a.disabled,
align = _a.align,
title = _a.title,
brief = _a.brief,
wrap = _a.wrap,
arrow = _a.arrow,
extra = _a.extra,
solid = _a.solid,
restProps = __rest(_a, ["prefixCls", "children", "className", "style", "disabled", "align", "title", "brief", "wrap", "arrow", "extra", "solid"]);
var wrapCls = classnames('' + prefixCls, className, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-has-arrow', arrow !== ''), _defineProperty(_classnames, prefixCls + '-disabled', disabled), _defineProperty(_classnames, prefixCls + '-' + align, align), _classnames));
var contentCls = classnames(prefixCls + '-content', _defineProperty({}, prefixCls + '-content-wrap', wrap));
var arrowCls = classnames(prefixCls + '-arrow', _defineProperty({}, prefixCls + '-arrow-' + arrow, arrow));
var labelCls = classnames(prefixCls + '-label', _defineProperty({}, prefixCls + '-label-solid', solid));
var extraDom = extra ? React.createElement(
'div',
{ className: prefixCls + '-extra' },
typeof extra === 'string' ? React.createElement('img', { src: extra }) : extra
) : null;
var arrowDom = arrow && React.createElement(
'div',
{ className: arrowCls, 'aria-hidden': 'true' },
React.createElement(Icon, { type: 'right' })
);
return React.createElement(
'div',
_extends({ className: wrapCls, style: style }, restProps),
React.createElement(
'div',
{ className: prefixCls + '-inner' },
extraDom,
React.createElement(
'div',
{ className: labelCls },
React.createElement(
'div',
{ className: prefixCls + '-title' },
title
),
brief ? React.createElement(
'div',
{ className: prefixCls + '-brief' },
brief
) : null
),
React.createElement(
'div',
{ className: contentCls },
children !== undefined && children
),
arrowDom
)
);
}
}]);
return ListItem;
}(React.PureComponent);
export default ListItem;
ListItem.defaultProps = {
prefixCls: 'm-list-item',
align: 'right',
arrow: '',
solid: false
};