cluedin-widget
Version: 
This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.
57 lines (48 loc) • 1.83 kB
JavaScript
import constants from '../constants';
const initialState = {
  genericLastIssues: {},
  isFetchingGenericIssues: true,
  isFakeGenericIssues: false,
  pageNumber: 0,
  currentTimeStamp: void 0,
  currentIssues: [],
};
export default function update(state = initialState, action = {}) {
  switch (action.type) {
    case constants.issue.REQUEST_GENERIC_LAST_ISSUES:
      let timeStamp = action.data.timeStamp;
      let pageNumber = state.pageNumber;
      let currentIssues = state.currentIssues;
      let cleanGenericLastIssues = Object.assign({}, state.genericLastIssues);
      if (state.currentTimeStamp && state.currentTimeStamp !== action.data.timeStamp) {
        cleanGenericLastIssues[timeStamp] = void 0;
        pageNumber = 0;
        currentIssues = [];
      }
      return Object.assign({}, {
        genericLastIssues: cleanGenericLastIssues,
        isFetchingGenericIssues: true,
        isFakeGenericIssues: false,
        pageNumber,
        currentTimeStamp: timeStamp,
        currentIssues,
      });
    case constants.issue.RECEIVE_GENERIC_LAST_ISSUES:
      let newGenericLastIssues = Object.assign({}, state.genericLastIssues);
      if (newGenericLastIssues[action.data.timeStamp]) {
        newGenericLastIssues[action.data.timeStamp] = newGenericLastIssues[action.data.timeStamp].concat(action.data.issues);
      } else {
        newGenericLastIssues[action.data.timeStamp] = action.data.issues;
      }
      return Object.assign({}, {
        genericLastIssues: newGenericLastIssues,
        isFetchingGenericIssues: false,
        isFakeGenericIssues: action.data.isFake,
        pageNumber: action.data.pageNumber,
        currentTimeStamp: state.currentTimeStamp,
        currentIssues: newGenericLastIssues[action.data.timeStamp],
      });
    default :
      return state;
  }
};