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.

93 lines (81 loc) 2.99 kB
import constants from '../constants'; const initialState = { entities: {}, selectedEntity: void 0, isFetchingEntity: true, genericLatestEntities: {}, isFetchingGenericLatest: {}, currentSuggestedSearches: {}, isFetchingSuggestedSearches: {}, entityByEmail: {}, isFetchingEntityByEmail: true, entityFromSalesForce: void 0, isFetchingEntityFromSalesForce: true, entityEmailNotFound: true, }; export default function update(state = initialState, action = {}) { switch (action.type) { case constants.entity.REQUEST_ENTITY: return Object.assign({}, state, { entities: state.entities, selectedEntity: void 0, isFetchingEntity: true, currentSuggestedSearches: {}, isFetchingSuggestedSearches: {}, }); case constants.entity.RECEIVE_ENTITY: var entities = state.entities; if (action.data.addToEntities) { entities[action.data.entity.id] = action.data.entity; } return Object.assign({}, state, { entities: Object.assign({}, entities), selectedEntity: action.data.entity, isFetchingEntity: false, }); case constants.entity.REQUEST_GENERIC_LATEST: var type = action.data.type; state.isFetchingGenericLatest[type] = true; return Object.assign({}, state, { isFetchingGenericLatest: Object.assign(state.isFetchingGenericLatest), }); case constants.entity.RECEIVE_GENERIC_LATEST: var entitiesPerType = action.data.entities; var type = action.data.type; state.genericLatestEntities[type] = entitiesPerType; state.isFetchingGenericLatest[type] = false; return Object.assign({}, state, { genericLatestEntities: Object.assign(state.genericLatestEntities), isFetchingGenericLatest: Object.assign(state.isFetchingGenericLatest), }); case constants.entity.RECEIVE_SUGGESTED_SEARCH: var suggested = {}; suggested[action.data.index] = action.data.entities; var suggestedSearches = Object.assign(state.currentSuggestedSearches, suggested); return Object.assign({}, state, { currentSuggestedSearches: Object.assign({}, suggestedSearches), }); case constants.entity.REQUEST_ENTITY_BY_EMAIL: return Object.assign({}, state, { isFetchingEntityByEmail: true, entityEmailNotFound: false, }); case constants.entity.RECEIVE_ENTITY_BY_EMAIL: return Object.assign({}, state, { entityByEmail: action.data.entity, isFetchingEntityByEmail: false, }); case constants.entity.RECEIVE_ENTITY_FOR_SALESFORCE: return Object.assign({}, state, { entityFromSalesForce: action.data.entity, isFetchingEntityFromSalesForce: false, }); case constants.entity.INVALID_ENTITY_BY_EMAIL: return Object.assign({}, state, { entityEmailNotFound: true, isFetchingEntityByEmail: false, }); default : return state; } };