bokuweb/tuna_pasta

View on GitHub
src/reducers/menu.js

Summary

Maintainability
A
3 hrs
Test Coverage
import * as types from '../constants/action-types';

export default function menu(state={}, action) {
  switch(action.type){
    case types.INITIALIZE_KEYWORD :
      state.keywords = action.keywords;
      state.activeKeyword = 'all';
      state.bookmarkFilter = 1;
      state.bookmarkFilterX = 15;
      state.keywordInput = '';
      state.isMenuOpen = false;
      return Object.assign({}, state);

    case types.SELECT_KEYWORD :
      state.activeKeyword = action.keyword;
      return Object.assign({}, state);

    case types.CHANGE_BOOKMARK_FILTER :
      state.bookmarkFilter = action.value;
      state.bookmarkFilterX = action.x;
      return Object.assign({}, state);

    case types.CHANGE_KEYWORD_INPUT :
      state.keywordInput = action.value;
      return Object.assign({}, state);

    case types.ADD_KEYWORD :
      state.activeKeyword = action.keyword;
      state.keywordInput = '';
      return Object.assign({}, state);

    case types.ADD_KEYWORD_COMPLETE :
      state.keywords = action.keywords;
      return Object.assign({}, state);

    case types.TOGGLE_MENU :
      state.isMenuOpen = !state.isMenuOpen;
      return Object.assign({}, state);

    case types.REMOVE_KEYWORD :
      state.keywords = action.keywords;
      if (state.keywords.length === 0 || action.keyword === state.activeKeyword)
        state.activeKeyword = 'all'
      return Object.assign({}, state);

    default:
      return state;
  }
}