reducer.ts 666 Bytes
import produce from 'immer';
import Types from 'local-types';
import { UserState, UserActionTypes } from './types';
import { Reducer } from 'typesafe-actions';

const initialState: UserState = { list: [] };

const reducer: Reducer<UserState, Types.RootAction> = (
  state = initialState,
  action
) =>
  produce(state, draft => {
    switch (action.type) {
      case UserActionTypes.ADD_USER:
        draft.list.splice(0, 0, action.payload);
        break;
      case UserActionTypes.SET_CURRENT:
        draft.current = action.payload;
        break;
      case UserActionTypes.SET_TOKEN:
        draft.token = action.payload;
    }
  });

export default reducer;