diff --git a/apps/web/src/store/index.ts b/apps/web/src/store/index.ts index d362570..a01e8c4 100644 --- a/apps/web/src/store/index.ts +++ b/apps/web/src/store/index.ts @@ -1481,12 +1481,19 @@ export const useGameStore = create()( infraNav: { level: 'clusters' }, } as unknown as Store; } - const s = _persisted as Record; - const research = s.research as Record; - if (!research.researchQueue) { - s.research = { ...research, researchQueue: [] }; + return _persisted as Store; + }, + merge: (persisted, current) => { + const p = persisted as Record; + const c = current as unknown as Record; + const merged = { ...c, ...p }; + for (const key of Object.keys(c)) { + if (p[key] != null && typeof p[key] === 'object' && !Array.isArray(p[key]) + && typeof c[key] === 'object' && !Array.isArray(c[key])) { + merged[key] = { ...c[key] as Record, ...p[key] as Record }; + } } - return s as unknown as Store; + return merged as unknown as Store; }, }, ),