diff --git a/src/devTools.js b/src/devTools.js index 78308614..3bf383ac 100644 --- a/src/devTools.js +++ b/src/devTools.js @@ -6,7 +6,8 @@ const ActionTypes = { SWEEP: 'SWEEP', TOGGLE_ACTION: 'TOGGLE_ACTION', JUMP_TO_STATE: 'JUMP_TO_STATE', - SET_MONITOR_STATE: 'SET_MONITOR_STATE' + SET_MONITOR_STATE: 'SET_MONITOR_STATE', + RECOMPUTE_STATES: 'RECOMPUTE_STATES' }; const INIT_ACTION = { @@ -141,6 +142,12 @@ function liftReducer(reducer, initialState) { case ActionTypes.SET_MONITOR_STATE: monitorState = liftedAction.monitorState; break; + case ActionTypes.RECOMPUTE_STATES: + stagedActions = liftedAction.stagedActions; + committedState = liftedAction.committedState; + currentStateIndex = stagedActions.length - 1; + skippedActions = {}; + break; default: break; } @@ -227,6 +234,13 @@ export const ActionCreators = { }, setMonitorState(monitorState) { return { type: ActionTypes.SET_MONITOR_STATE, monitorState }; + }, + recomputeStates(committedState, stagedActions) { + return { + type: ActionTypes.RECOMPUTE_STATES, + committedState, + stagedActions + }; } }; diff --git a/src/react/LogMonitor.js b/src/react/LogMonitor.js index 4b8fd7cd..fc738e91 100644 --- a/src/react/LogMonitor.js +++ b/src/react/LogMonitor.js @@ -30,7 +30,9 @@ const styles = { export default class LogMonitor { constructor() { - window.addEventListener('keydown', ::this.handleKeyPress); + if (typeof window !== 'undefined') { + window.addEventListener('keydown', ::this.handleKeyPress); + } } static propTypes = {