text: import createReducer from 'utils/createReducer';
  import * as actions from './actions';
  
  const HISTORY_MAX_LENGTH = 128;
  
  const initialState = {
    history: [],
    index: 0
  };
  
  export const getCurrentInputHistoryEntry = state => {
    if (state.input.index === -1) {
      return null;
    }
  
    return state.input.history[state.input.index];
  };
  
  export default createReducer(initialState, {
    [actions.INPUT_HISTORY_ADD](state, { line }) {
      if (line.trim() && line !== state.history[0]) {
        if (state.history.length === HISTORY_MAX_LENGTH) {
          state.history.pop();
        }
        state.history.unshift(line);
      }
    },
  
    [actions.INPUT_HISTORY_RESET](state) {
      state.index = -1;
    },
  
    [actions.INPUT_HISTORY_INCREMENT](state) {
      if (state.index < state.history.length - 1) {
        state.index++;
      }
    },
  
    [actions.INPUT_HISTORY_DECREMENT](state) {
      if (state.index >= 0) {
        state.index--;
      }
    }
  });
  
  export function addInputHistory(line) {
    return {
      type: actions.INPUT_HISTORY_ADD,
      line
    };
  }
  
  export function resetInputHistory() {
    return {
      type: actions.INPUT_HISTORY_RESET
    };
  }
  
  export function incrementInputHistory() {
    return {
      type: actions.INPUT_HISTORY_INCREMENT
    };
  }
  
  export function decrementInputHistory() {
    return {
      type: actions.INPUT_HISTORY_DECREMENT
    };
  }
  