client/src/reducers/sessionsReducer.js
author Alexandre Segura <mex.zktk@gmail.com>
Thu, 01 Jun 2017 11:39:20 +0200
changeset 13 d6eef0e9f7e1
parent 12 48ddaa42b810
child 29 4cfeabef7d5e
permissions -rw-r--r--
Fix test.

import Immutable from 'immutable';
import * as types from '../constants/actionTypes';

export const currentSession = (state = null, action) => {
  switch (action.type) {
    case types.NEW_SESSION:
      return action.session;
    default:
      return state;
  }
};

export const sessions = (state = Immutable.List([]), action) => {
  switch (action.type) {
    case types.NEW_SESSION:
      return state.push(action.session);
    case types.UPDATE_SESSION:
      const sessionToUpdate = state.find(session => session === action.session);
      const sessionIndex = state.indexOf(action.session);
      if (sessionIndex === -1) {
        return state;
      }
      const updatedSession = Object.assign({}, sessionToUpdate, action.values);
      return state.set(sessionIndex, updatedSession);
    default:
      return state;
  }
};