diff --git a/libs/shared/lib/data-access/store/sessionSlice.ts b/libs/shared/lib/data-access/store/sessionSlice.ts index e4c1a559c9ec69e016bf902d4fffc824d3e2485f..2adf04d6ef72f9b787f8310f5149ba5b5f56286b 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) {