react-bootstrap-table-next
Version:
Next generation of react-bootstrap-table
83 lines (58 loc) • 3.07 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 _utils = require('../utils');
var _utils2 = _interopRequireDefault(_utils);
var _selectionContext = require('../contexts/selection-context');
var _selectionContext2 = _interopRequireDefault(_selectionContext);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (Component) {
var renderWithSelection = function renderWithSelection(props, selectRow) {
var key = props.value;
var selected = _utils2.default.contains(selectRow.selected, key);
var selectable = !selectRow.nonSelectable || !_utils2.default.contains(selectRow.nonSelectable, key);
var notSelectable = _utils2.default.contains(selectRow.nonSelectable, key);
var style = props.style,
className = props.className;
if (selected) {
var selectedStyle = _utils2.default.isFunction(selectRow.style) ? selectRow.style(props.row, props.rowIndex) : selectRow.style;
var selectedClasses = _utils2.default.isFunction(selectRow.classes) ? selectRow.classes(props.row, props.rowIndex) : selectRow.classes;
style = _extends({}, style, selectedStyle);
className = (0, _classnames2.default)(className, selectedClasses) || undefined;
if (selectRow.bgColor) {
style = style || {};
style.backgroundColor = _utils2.default.isFunction(selectRow.bgColor) ? selectRow.bgColor(props.row, props.rowIndex) : selectRow.bgColor;
}
}
if (notSelectable) {
var notSelectableStyle = _utils2.default.isFunction(selectRow.nonSelectableStyle) ? selectRow.nonSelectableStyle(props.row, props.rowIndex) : selectRow.nonSelectableStyle;
var notSelectableClasses = _utils2.default.isFunction(selectRow.nonSelectableClasses) ? selectRow.nonSelectableClasses(props.row, props.rowIndex) : selectRow.nonSelectableClasses;
style = _extends({}, style, notSelectableStyle);
className = (0, _classnames2.default)(className, notSelectableClasses) || undefined;
}
return _react2.default.createElement(Component, _extends({}, props, {
style: style,
className: className,
selectRow: selectRow,
selected: selected,
selectable: selectable
}));
};
function withConsumer(props) {
return _react2.default.createElement(
_selectionContext2.default.Consumer,
null,
function (selectRow) {
return renderWithSelection(props, selectRow);
}
);
}
withConsumer.displayName = 'WithSelectionRowConsumer';
return withConsumer;
};
;