[bugfix]: use persistent columns def instead of default merge behavior

This commit is contained in:
Kendall Garner
2024-04-23 23:25:32 -07:00
parent 087ea44737
commit dc95a3c66b
5 changed files with 27 additions and 16 deletions
+19
View File
@@ -0,0 +1,19 @@
import mergeWith from 'lodash/mergeWith';
/**
* A custom deep merger that will replace all 'columns' items with the persistent
* state, instead of the default merge behavior. This is important to preserve the user's
* order, and not lead to an inconsistent state (e.g. multiple 'Favorite' keys)
* @param persistedState the persistent state
* @param currentState the current state
* @returns the a custom deep merge
*/
export const mergeOverridingColumns = <T>(persistedState: unknown, currentState: T) => {
return mergeWith(currentState, persistedState, (_original, persistent, key) => {
if (key === 'columns') {
return persistent;
}
return undefined;
});
};