diff --git a/commands/dispatcher.ts b/commands/dispatcher.ts index 107afd7..355d09c 100644 --- a/commands/dispatcher.ts +++ b/commands/dispatcher.ts @@ -59,13 +59,15 @@ function applyHistoryPolicy(options: { getDeferredHistory: () => { snapshot: HistorySnapshot; changed: boolean } | undefined; setDeferredHistory: (nextDeferredHistory: { snapshot: HistorySnapshot; changed: boolean } | undefined) => void; }): AppState { - if (options.historyPolicy.mode === "ignore") { + const { historyPolicy } = options; + + if (historyPolicy.mode === "ignore") { options.setDeferredHistory(undefined); return options.nextState; } - if (options.historyPolicy.mode === "deferred") { - return applyDeferredHistoryPolicy(options); + if (historyPolicy.mode === "deferred") { + return applyDeferredHistoryPolicy({ ...options, historyPolicy }); } return shouldRecordHistory(options.currentState, options.nextState) ? recordHistory(snapshot(options.currentState), options.nextState) : options.nextState;