UNPKG

react-bootstrap

Version:

Bootstrap 3 components build with React

95 lines (69 loc) 2.65 kB
'use strict'; var _inherits = require('babel-runtime/helpers/inherits')['default']; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _extends = require('babel-runtime/helpers/extends')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _utilsValidComponentChildren = require('./utils/ValidComponentChildren'); var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); var ListGroup = (function (_React$Component) { _inherits(ListGroup, _React$Component); function ListGroup() { _classCallCheck(this, ListGroup); _React$Component.apply(this, arguments); } ListGroup.prototype.render = function render() { var _this = this; var items = _utilsValidComponentChildren2['default'].map(this.props.children, function (item, index) { return _react.cloneElement(item, { key: item.key ? item.key : index }); }); var childrenAnchors = false; if (!this.props.children) { return this.renderDiv(items); } else { _react2['default'].Children.forEach(this.props.children, function (child) { if (_this.isAnchor(child.props)) { childrenAnchors = true; } }); } if (childrenAnchors) { return this.renderDiv(items); } else { return this.renderUL(items); } }; ListGroup.prototype.isAnchor = function isAnchor(props) { return props.href || props.onClick; }; ListGroup.prototype.renderUL = function renderUL(items) { var listItems = _utilsValidComponentChildren2['default'].map(items, function (item, index) { return _react.cloneElement(item, { listItem: true }); }); return _react2['default'].createElement( 'ul', _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'list-group') }), listItems ); }; ListGroup.prototype.renderDiv = function renderDiv(items) { return _react2['default'].createElement( 'div', _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'list-group') }), items ); }; return ListGroup; })(_react2['default'].Component); ListGroup.propTypes = { className: _react2['default'].PropTypes.string, id: _react2['default'].PropTypes.string }; exports['default'] = ListGroup; module.exports = exports['default'];