From 1df930e3f29fcb4b2eea3896369dd541ad057f1b Mon Sep 17 00:00:00 2001 From: Leonardo Christino <leomilho@gmail.com> Date: Tue, 23 Jan 2024 15:17:01 +0100 Subject: [PATCH] fix(form): keep db state when another is deleted --- libs/shared/lib/data-access/store/sessionSlice.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libs/shared/lib/data-access/store/sessionSlice.ts b/libs/shared/lib/data-access/store/sessionSlice.ts index e4c1a559c..2adf04d6e 100644 --- a/libs/shared/lib/data-access/store/sessionSlice.ts +++ b/libs/shared/lib/data-access/store/sessionSlice.ts @@ -30,10 +30,17 @@ export const sessionSlice = createSlice({ wsSelectState(state.currentSaveState); }, updateSaveStateList(state, action: PayloadAction<SaveStateI[]>) { - state.saveStates = {}; + let newState: Record<string, SaveStateI> = {}; action.payload.forEach((ss) => { - state.saveStates[ss.id] = ss; + newState[ss.id] = ss; + + // Keep db status (e.g. tested) from old state + // DB is always the same for a given save state, but if this changes, this code will break + if (ss.id in state.saveStates) { + newState[ss.id].db.status = state.saveStates[ss.id].db.status; + } }); + state.saveStates = newState; if (!state.currentSaveState || !(state.currentSaveState in state.saveStates)) { if (Object.keys(state.saveStates).length > 0) { -- GitLab