scroll-preivew

import { List } from 'immutable';
import {
  FETCH_LABELS_PENDING,
  FETCH_LABELS_ERROR,
  FETCH_LABELS_SUCCESS,
  CREATE_CRATE_SUCCESS,
} from '../actions/ActionTypes';
import * as RequestStatus from '../constants/requestStatus';
import Bundles from '../records/Bundles';

export default (state = new Bundles(), { type, payload }) => {
  switch (type) {
    case FETCH_LABELS_PENDING:
      return state.merge({
        status: RequestStatus.PENDING,
      });
    case FETCH_LABELS_ERROR:
      return state.merge({
        status: RequestStatus.ERROR,
      });
    case FETCH_LABELS_SUCCESS:
      return new Bundles({
        status: RequestStatus.SUCCESS,
        bundlesMap: payload.reduce(
          (acc, bundle) => acc.set(bundle.id, bundle),
          state.bundlesMap
        ),
      });
    case CREATE_CRATE_SUCCESS:
      return state.setIn(['bundlesMap', payload.id], payload);
    case DELETE_LABEL_PENDING:
      return state.setIn(
        ['bundlesMap', payload, 'status'],
        RequestStatus.PENDING
      );
    default: 
      return state;
  }
})