react-bootstrap-table-next
Version:
Next generation of react-bootstrap-table
76 lines (58 loc) • 2.67 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint react/prop-types: 0 */
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _expandRow = require('./expand-row');
var _expandRow2 = _interopRequireDefault(_expandRow);
var _utils = require('../utils');
var _utils2 = _interopRequireDefault(_utils);
var _rowExpandContext = require('../contexts/row-expand-context');
var _rowExpandContext2 = _interopRequireDefault(_rowExpandContext);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (Component) {
var renderWithExpansion = function renderWithExpansion(props, expandRow) {
var parentClassName = '';
var className = '';
var key = props.value;
var expanded = _utils2.default.contains(expandRow.expanded, key);
var isClosing = _utils2.default.contains(expandRow.isClosing, key);
var expandable = !expandRow.nonExpandable || !_utils2.default.contains(expandRow.nonExpandable, key);
if (expanded) {
parentClassName = _utils2.default.isFunction(expandRow.parentClassName) ? expandRow.parentClassName(expanded, props.row, props.rowIndex) : expandRow.parentClassName || '';
className = _utils2.default.isFunction(expandRow.className) ? expandRow.className(expanded, props.row, props.rowIndex) : expandRow.className || '';
}
return [_react2.default.createElement(Component, _extends({}, props, {
key: key,
expanded: expanded,
expandable: expandable,
expandRow: _extends({}, expandRow),
className: (0, _classnames2.default)(props.className, parentClassName)
})), expanded || isClosing ? _react2.default.createElement(
_expandRow2.default,
{
key: key + '-expanding',
colSpan: props.visibleColumnSize,
expanded: expanded,
onClosed: function onClosed() {
return expandRow.onClosed(key);
},
className: className
},
expandRow.renderer(props.row, props.rowIndex)
) : null];
};
return function (props) {
return _react2.default.createElement(
_rowExpandContext2.default.Consumer,
null,
function (expandRow) {
return renderWithExpansion(props, expandRow);
}
);
};
};
;