You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I noticed that clicking the showAll or hideAll button of the MRT_ShowHideColumnsMenu is not optimized.
If I have 30 columns, it will call the corresponding onRowSelectionChange 30 times. This should be optimized to be only one single call, updating the state only once.
Actually, this is not a problem, when you are using React's useState and provide the setState function. However, with the current implementation, I encounter problems when trying to synchronize with global state (in my case redux), as this will dispatch 30 redux actions (instead of just one).
I have not checked the source code of MRT_ShowHideColumnsMenu, but I think this should be fairly easy to fix / improve?
If you do not intend to address this, can you guide me on how to implement MRT_ShowHideColumsnMenu myself?
Thank you!
Minimal, Reproducible Example - (Optional, but Recommended)
Do you intend to try to help solve this bug with your own PR?
None
Terms
I understand that if my bug cannot be reliably reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
The text was updated successfully, but these errors were encountered:
the reason why it is not fine with redux is that the rowSelectionModel only changes after re-render. As a consequence, only the last of the 30 state updates comes through.
The functionality to show/hide all columns within the ShowHideColumnsMenu was implemented with a custom function which filters all columns and toggles the visibility of each column. This calls the `onColumnVisibilityChange` callback multiple times.
In my opinion this can be refactored to use the tables `toggleAllColumnsVisible` API, which results in only one call of `onColumnVisibilityChange` and makes the code easier to understand.
Fixes: KevinVandy#1277
material-react-table version
3.0.1
react & react-dom versions
18.3.1
Describe the bug and the steps to reproduce it
Hi,
I noticed that clicking the showAll or hideAll button of the MRT_ShowHideColumnsMenu is not optimized.
If I have 30 columns, it will call the corresponding onRowSelectionChange 30 times. This should be optimized to be only one single call, updating the state only once.
Actually, this is not a problem, when you are using React's useState and provide the setState function. However, with the current implementation, I encounter problems when trying to synchronize with global state (in my case redux), as this will dispatch 30 redux actions (instead of just one).
I have not checked the source code of MRT_ShowHideColumnsMenu, but I think this should be fairly easy to fix / improve?
If you do not intend to address this, can you guide me on how to implement MRT_ShowHideColumsnMenu myself?
Thank you!
Minimal, Reproducible Example - (Optional, but Recommended)
with useState this is fine, e.g.
const [rowSelectionModel, setRowSelectionModel] = useState<T>(reduxState);
with redux this is not fine, e.g.
Screenshots or Videos (Optional)
No response
Do you intend to try to help solve this bug with your own PR?
None
Terms
The text was updated successfully, but these errors were encountered: