workIM.js 1.2 KB
import * as types from '../constants/ActionTypes';

const initialState = {
  showChat    : false,
  appid       : '25wehl3u29t3w',
  token       : '', 
  userMap     : {},
  messages    : [],
  selecedUser :''
};

export default function workim(state = initialState, action) {
    switch (action.type) {
      case types.LOAD_IM_TOKEN:
          return Object.assign({}, state, {
              token: action.token,
              appid: action.appid
          });
          break; 
      case types.LOAD_USER_MAP:
          return Object.assign({}, state, {
              userMap: action.userMap 
          });
          break;  
      case types.CHANGE_IM_CHAT_STATE:
          return Object.assign({}, state, {
              showChat: action.showChat 
          });
          break; 
      case types.CHANGE_MESSAGES:
          if(action.selecedUser ){
            return Object.assign({}, state, {
                messages    : action.messages,
                selecedUser : action.selecedUser 
            });
          }else{
            return Object.assign({}, state, {
                messages    : action.messages 
            });
          }
          break;  
      default:
          return state;
    }
}