diff --git a/packages/react-bootstrap-table2/src/bootstrap-table.js b/packages/react-bootstrap-table2/src/bootstrap-table.js index 338a428..21fd65b 100644 --- a/packages/react-bootstrap-table2/src/bootstrap-table.js +++ b/packages/react-bootstrap-table2/src/bootstrap-table.js @@ -166,6 +166,8 @@ BootstrapTable.propTypes = { style: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), classes: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), nonSelectable: PropTypes.array, + nonSelectableStyle: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), + nonSelectableClasses: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), bgColor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), hideSelectColumn: PropTypes.bool, selectionRenderer: PropTypes.func, diff --git a/packages/react-bootstrap-table2/src/row-selection/row-consumer.js b/packages/react-bootstrap-table2/src/row-selection/row-consumer.js index a8b14db..ff8d6fe 100644 --- a/packages/react-bootstrap-table2/src/row-selection/row-consumer.js +++ b/packages/react-bootstrap-table2/src/row-selection/row-consumer.js @@ -9,6 +9,7 @@ export default (Component) => { const key = props.value; const selected = _.contains(selectRow.selected, key); const selectable = !selectRow.nonSelectable || !_.contains(selectRow.nonSelectable, key); + const notSelectable = _.contains(selectRow.nonSelectable, key); let { style, @@ -38,6 +39,22 @@ export default (Component) => { } } + if (notSelectable) { + const notSelectableStyle = _.isFunction(selectRow.nonSelectableStyle) + ? selectRow.nonSelectableStyle(props.row, props.rowIndex) + : selectRow.nonSelectableStyle; + + const notSelectableClasses = _.isFunction(selectRow.nonSelectableClasses) + ? selectRow.nonSelectableClasses(props.row, props.rowIndex) + : selectRow.nonSelectableClasses; + + style = { + ...style, + ...notSelectableStyle + }; + className = cs(className, notSelectableClasses) || undefined; + } + return (