UNPKG

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
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; } };