UNPKG

react-bootstrap-table-next

Version:
83 lines (58 loc) 3.07 kB
'use strict'; 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; };