mirror of
https://github.com/gosticks/react-table.git
synced 2025-10-16 11:55:36 +00:00
useTable: Fixes memoizing of headerGroups (#1920)
Co-authored-by: Tanner Linsley <tannerlinsley@gmail.com>
This commit is contained in:
parent
7498059e98
commit
73ed7efbe6
@ -380,40 +380,42 @@ export const useTable = (props, ...plugins) => {
|
||||
}
|
||||
)
|
||||
|
||||
getInstance().headerGroups = getInstance().headerGroups.filter(
|
||||
(headerGroup, i) => {
|
||||
// Filter out any headers and headerGroups that don't have visible columns
|
||||
headerGroup.headers = headerGroup.headers.filter(column => {
|
||||
const recurse = headers =>
|
||||
headers.filter(column => {
|
||||
if (column.headers) {
|
||||
return recurse(column.headers)
|
||||
}
|
||||
return column.isVisible
|
||||
}).length
|
||||
if (column.headers) {
|
||||
return recurse(column.headers)
|
||||
getInstance().headerGroups = React.useMemo(
|
||||
() =>
|
||||
headerGroups.filter((headerGroup, i) => {
|
||||
// Filter out any headers and headerGroups that don't have visible columns
|
||||
headerGroup.headers = headerGroup.headers.filter(column => {
|
||||
const recurse = headers =>
|
||||
headers.filter(column => {
|
||||
if (column.headers) {
|
||||
return recurse(column.headers)
|
||||
}
|
||||
return column.isVisible
|
||||
}).length
|
||||
if (column.headers) {
|
||||
return recurse(column.headers)
|
||||
}
|
||||
return column.isVisible
|
||||
})
|
||||
|
||||
// Give headerGroups getRowProps
|
||||
if (headerGroup.headers.length) {
|
||||
headerGroup.getHeaderGroupProps = makePropGetter(
|
||||
getHooks().getHeaderGroupProps,
|
||||
{ instance: getInstance(), headerGroup, index: i }
|
||||
)
|
||||
|
||||
headerGroup.getFooterGroupProps = makePropGetter(
|
||||
getHooks().getFooterGroupProps,
|
||||
{ instance: getInstance(), headerGroup, index: i }
|
||||
)
|
||||
|
||||
return true
|
||||
}
|
||||
return column.isVisible
|
||||
})
|
||||
|
||||
// Give headerGroups getRowProps
|
||||
if (headerGroup.headers.length) {
|
||||
headerGroup.getHeaderGroupProps = makePropGetter(
|
||||
getHooks().getHeaderGroupProps,
|
||||
{ instance: getInstance(), headerGroup, index: i }
|
||||
)
|
||||
|
||||
headerGroup.getFooterGroupProps = makePropGetter(
|
||||
getHooks().getFooterGroupProps,
|
||||
{ instance: getInstance(), headerGroup, index: i }
|
||||
)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
return false
|
||||
}),
|
||||
[headerGroups, getInstance, getHooks]
|
||||
)
|
||||
|
||||
getInstance().footerGroups = [...getInstance().headerGroups].reverse()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user