diff --git a/packages/react-bootstrap-table2/src/body.js b/packages/react-bootstrap-table2/src/body.js index a32a82e..2d445fc 100644 --- a/packages/react-bootstrap-table2/src/body.js +++ b/packages/react-bootstrap-table2/src/body.js @@ -15,9 +15,36 @@ import withRowExpansion from './row-expand/row-consumer'; class Body extends React.Component { constructor(props) { super(props); - if (props.cellEdit.createContext) { - this.EditingCell = props.cellEdit.createEditingCell(_, props.cellEdit.options.onStartEdit); + const { + keyField, + visibleColumnSize, + cellEdit, + selectRow, + expandRow + } = props; + + // Construct Editing Cell Component + if (cellEdit.createContext) { + this.EditingCell = cellEdit.createEditingCell(_, cellEdit.options.onStartEdit); } + + // Construct Row Component + let RowComponent = SimpleRow; + const selectRowEnabled = selectRow.mode !== Const.ROW_SELECT_DISABLED; + const expandRowEnabled = !!expandRow.renderer; + + if (expandRowEnabled) { + RowComponent = withRowExpansion(RowAggregator, visibleColumnSize); + } + + if (selectRowEnabled) { + RowComponent = withRowSelection(expandRowEnabled ? RowComponent : RowAggregator); + } + + if (cellEdit.createContext) { + RowComponent = cellEdit.withRowLevelCellEdit(RowComponent, selectRowEnabled, keyField, _); + } + this.RowComponent = RowComponent; } render() { @@ -46,21 +73,12 @@ class Body extends React.Component { } content = ; } else { - let RowComponent = SimpleRow; const selectRowEnabled = selectRow.mode !== Const.ROW_SELECT_DISABLED; const expandRowEnabled = !!expandRow.renderer; const additionalRowProps = {}; - if (expandRowEnabled) { - RowComponent = withRowExpansion(RowAggregator, visibleColumnSize); - } - - if (selectRowEnabled) { - RowComponent = withRowSelection(expandRowEnabled ? RowComponent : RowAggregator); - } if (cellEdit.createContext) { - RowComponent = cellEdit.withRowLevelCellEdit(RowComponent, selectRowEnabled, keyField, _); additionalRowProps.EditingCellComponent = this.EditingCell; } @@ -88,7 +106,7 @@ class Body extends React.Component { baseRowProps.style = _.isFunction(rowStyle) ? rowStyle(row, index) : rowStyle; baseRowProps.className = (_.isFunction(rowClasses) ? rowClasses(row, index) : rowClasses); - return ; + return ; }); }