import { bookmarkCounterReducer, } from './bookmarkCounterReducer'; import { passageNameReducer, } from './passageNameReducer'; import { IAction, } from '../actions/IAction'; import { lastLinkTagsReducer, } from './lastLinkTagsReducer'; import { passageTimeReducer, } from './passageTimeReducer'; import { storyStateReducer, } from './storyStateReducer'; import { combineReducers, Reducer, } from 'redux'; import { getNormalizedAcceleratorConfig, } from '../configuration/getNormalizedAcceleratorConfig'; import { IHistory, } from '../state/IHistory'; import { default as undoable, includeAction, } from 'redux-undo'; const { historySaveTypes, historyStackLimit: limit, historySynchronizeUnrewindableStateWithPresent: syncFilter, } = getNormalizedAcceleratorConfig(); export const historyReducer: Reducer = undoable( combineReducers({ bookmarkCounter: bookmarkCounterReducer, passageName: passageNameReducer, lastLinkTags: lastLinkTagsReducer, passageTimeCounter: passageTimeReducer, storyState: storyStateReducer, }), { limit, syncFilter, filter: includeAction(Array.prototype.slice.call(historySaveTypes)), }, );