function visibleTodoFilter(state = 'watch', action) {
  switch (action.type) {
  case 'CHANGE_VISIBLE_FILTER':
    return action.filter;
  default:
    return state;
  }
}
function todos(state, action) {
  switch (action.type) {
  case 'ADD_TODO':
    return [...state, {
      text: action.text,
      completed: false
    }];
  case 'COMPLETE_TODO':
    return [
      ...state.slice(0, action.index),
      Object.assign({}, state[action.index], {
        completed: true
      }),
      ...state.slice(action.index + 1)
    ]
  default:
    return state;
  }
}
import { combineReducers, createStore } from 'redux';
let reducer = combineReducers({ visibleTodoFilter, todos });
let store = createStore(reducer);