table
table copied to clipboard
fix(table-core): Do not select subrows if enableSubRowSelection is set to false
Fixes #5116.
There are two cases here that were not being covered by the current code:
- If
enableSubRowSelection
is a boolean and is set to true, then only the first level of rows should be selected. We can easily achieve this by iterating overrows
instead offlatRows
. - The more complicated case is when
enableSubRowSelection
is a function. In this scenario we must run the check recursively for all subrows. The easiest way I've found to solve this was to just iterate over rows using themutateRowIsSelected
helper function.
In order to not losing the performance improvement that was already implemented, I've kept the old flow and just in case enableRowSeleciton is a function, we will reach the slower path (which might not be very common anyway)