diff --git a/src/hooks/useExpanded.js b/src/hooks/useExpanded.js index 70a8c61..7f0e81f 100755 --- a/src/hooks/useExpanded.js +++ b/src/hooks/useExpanded.js @@ -13,7 +13,8 @@ addActions({ }) const propTypes = { - expandedKey: PropTypes.string + expandedKey: PropTypes.string, + paginateSubRows: PropTypes.bool } export const useExpanded = props => { @@ -21,11 +22,11 @@ export const useExpanded = props => { const { debug, - columns, rows, expandedKey = 'expanded', hooks, - state: [{ expanded }, setState] + state: [{ expanded }, setState], + paginateSubRows = true } = props const toggleExpandedByPath = (path, set) => { @@ -62,17 +63,21 @@ export const useExpanded = props => { row.isExpanded = (row.original && row.original[expandedKey]) || getBy(expanded, path) - expandedRows.push(row) + if (paginateSubRows || (!paginateSubRows && row.depth === 0)) { + expandedRows.push(row) + } if (row.isExpanded && row.subRows && row.subRows.length) { row.subRows.forEach((row, i) => handleRow(row, i, depth + 1, path)) } + + return row } rows.forEach((row, i) => handleRow(row, i)) return expandedRows - }, [rows, expanded, columns]) + }, [debug, rows, expandedKey, expanded, paginateSubRows]) const expandedDepth = findExpandedDepth(expanded)