Skip to content

Commit 3be53a9

Browse files
improve state persistence and validation handling
Refactors state persistence logic to ensure invalid state resets are persisted. Updates tests to reflect changes in state retrieval behavior. Enhances reliability and consistency of state management.
1 parent 61915b5 commit 3be53a9

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

plugins/wazuh-fleet/public/components/common/data-grid/data-grid-state-persistence-manager/use-data-grid-state-persistence-manager.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ describe('useDataGridStatePersistenceManager', () => {
131131
);
132132
const retrievedState = result.current.retrieveState();
133133

134-
expect(mockStateManagement.retrieveState).toHaveBeenCalledTimes(1);
134+
expect(mockStateManagement.retrieveState).toHaveBeenCalledTimes(2);
135135
expect(retrievedState.pageSize).toEqual(DEFAULT_PAGE_SIZE);
136136
});
137137

plugins/wazuh-fleet/public/components/common/data-grid/data-grid-state-persistence-manager/use-data-grid-state-persistence-manager.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,17 @@ const useDataGridStatePersistenceManager = ({
146146
stateManagement.clearState();
147147
};
148148

149+
const persistState = (payload: Partial<DataGridState>): void => {
150+
stateManagement.persistState(payload);
151+
};
152+
153+
const updateState = (payload: Partial<DataGridState>): void => {
154+
const currentState = stateManagement.retrieveState();
155+
const newState = { ...currentState, ...payload };
156+
157+
persistState(newState);
158+
};
159+
149160
const retrieveState = (): DataGridState => {
150161
const state: DataGridState = Object.assign(
151162
{},
@@ -170,20 +181,23 @@ const useDataGridStatePersistenceManager = ({
170181
validateColumnsState(state.columns ?? []);
171182
} catch {
172183
state.columns = [];
184+
updateState({ columns: [] });
173185
console.warn('Columns state was invalid, resetting to default.');
174186
}
175187

176188
try {
177189
validateColumnWidthsState(state.columnsWidth ?? {});
178190
} catch {
179191
state.columnsWidth = {};
192+
updateState({ columnsWidth: {} });
180193
console.warn('Columns width state was invalid, resetting to default.');
181194
}
182195

183196
try {
184197
validatePageSizeState(state.pageSize ?? 0);
185198
} catch {
186199
state.pageSize = DEFAULT_PAGE_SIZE;
200+
updateState({ pageSize: DEFAULT_PAGE_SIZE });
187201
console.warn('Page size state was invalid, resetting to default.');
188202
}
189203

@@ -194,17 +208,6 @@ const useDataGridStatePersistenceManager = ({
194208
return defaultState;
195209
};
196210

197-
const persistState = (payload: Partial<DataGridState>): void => {
198-
stateManagement.persistState(payload);
199-
};
200-
201-
const updateState = (payload: Partial<DataGridState>): void => {
202-
const currentState = retrieveState();
203-
const newState = { ...currentState, ...payload };
204-
205-
persistState(newState);
206-
};
207-
208211
return {
209212
retrieveState,
210213
persistState,

0 commit comments

Comments
 (0)