UNPKG

4.32 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _values = require('babel-runtime/core-js/object/values');
6
7var _values2 = _interopRequireDefault(_values);
8
9var _extends2 = require('babel-runtime/helpers/extends');
10
11var _extends3 = _interopRequireDefault(_extends2);
12
13var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
14
15var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
16
17var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
18
19var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20
21var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
22
23var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
24
25var _inherits2 = require('babel-runtime/helpers/inherits');
26
27var _inherits3 = _interopRequireDefault(_inherits2);
28
29var _classnames = require('classnames');
30
31var _classnames2 = _interopRequireDefault(_classnames);
32
33var _react = require('react');
34
35var _react2 = _interopRequireDefault(_react);
36
37var _propTypes = require('prop-types');
38
39var _propTypes2 = _interopRequireDefault(_propTypes);
40
41var _bootstrapUtils = require('./utils/bootstrapUtils');
42
43var _StyleConfig = require('./utils/StyleConfig');
44
45function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
46
47var propTypes = {
48 active: _propTypes2.default.any,
49 disabled: _propTypes2.default.any,
50 header: _propTypes2.default.node,
51 listItem: _propTypes2.default.bool,
52 onClick: _propTypes2.default.func,
53 href: _propTypes2.default.string,
54 type: _propTypes2.default.string
55};
56
57var defaultProps = {
58 listItem: false
59};
60
61var ListGroupItem = function (_React$Component) {
62 (0, _inherits3.default)(ListGroupItem, _React$Component);
63
64 function ListGroupItem() {
65 (0, _classCallCheck3.default)(this, ListGroupItem);
66 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
67 }
68
69 ListGroupItem.prototype.renderHeader = function renderHeader(header, headingClassName) {
70 if (_react2.default.isValidElement(header)) {
71 return (0, _react.cloneElement)(header, {
72 className: (0, _classnames2.default)(header.props.className, headingClassName)
73 });
74 }
75
76 return _react2.default.createElement(
77 'h4',
78 { className: headingClassName },
79 header
80 );
81 };
82
83 ListGroupItem.prototype.render = function render() {
84 var _props = this.props,
85 active = _props.active,
86 disabled = _props.disabled,
87 className = _props.className,
88 header = _props.header,
89 listItem = _props.listItem,
90 children = _props.children,
91 props = (0, _objectWithoutProperties3.default)(_props, ['active', 'disabled', 'className', 'header', 'listItem', 'children']);
92
93 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
94 bsProps = _splitBsProps[0],
95 elementProps = _splitBsProps[1];
96
97 var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
98 active: active,
99 disabled: disabled
100 });
101
102 var Component = void 0;
103
104 if (elementProps.href) {
105 Component = 'a';
106 } else if (elementProps.onClick) {
107 Component = 'button';
108 elementProps.type = elementProps.type || 'button';
109 } else if (listItem) {
110 Component = 'li';
111 } else {
112 Component = 'span';
113 }
114
115 elementProps.className = (0, _classnames2.default)(className, classes);
116
117 // TODO: Deprecate `header` prop.
118 if (header) {
119 return _react2.default.createElement(
120 Component,
121 elementProps,
122 this.renderHeader(header, (0, _bootstrapUtils.prefix)(bsProps, 'heading')),
123 _react2.default.createElement(
124 'p',
125 { className: (0, _bootstrapUtils.prefix)(bsProps, 'text') },
126 children
127 )
128 );
129 }
130
131 return _react2.default.createElement(
132 Component,
133 elementProps,
134 children
135 );
136 };
137
138 return ListGroupItem;
139}(_react2.default.Component);
140
141ListGroupItem.propTypes = propTypes;
142ListGroupItem.defaultProps = defaultProps;
143
144exports.default = (0, _bootstrapUtils.bsClass)('list-group-item', (0, _bootstrapUtils.bsStyles)((0, _values2.default)(_StyleConfig.State), ListGroupItem));
145module.exports = exports['default'];
\No newline at end of file