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.

134 lines (122 loc) 5.32 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 }; export default function update(state = initialState, action = {}) { switch (action.type) { case constants.entity.REQUEST_ENTITY: return Object.assign({}, { entities: state.entities, selectedEntity: void 0, isFetchingEntity: true, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: state.isFetchingGenericLatest, currentSuggestedSearches: {}, isFetchingSuggestedSearches: {}, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: state.isFetchingEntityByEmail, }); case constants.entity.RECEIVE_ENTITY: var entities = state.entities; if (action.data.addToEntities) { entities[action.data.entity.id] = action.data.entity; } return Object.assign({}, { entities: Object.assign({}, entities), selectedEntity: action.data.entity, isFetchingEntity: false, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: state.isFetchingGenericLatest, currentSuggestedSearches: state.currentSuggestedSearches, isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: state.isFetchingEntityByEmail, }); case constants.entity.REQUEST_GENERIC_LATEST: var type = action.data.type; state.isFetchingGenericLatest[type] = true; return Object.assign({}, { entities: state.entities, selectedEntity: state.selectedEntity, isFetchingEntity: state.isFetchingEntity, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: Object.assign(state.isFetchingGenericLatest), currentSuggestedSearches: state.currentSuggestedSearches, isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: state.isFetchingEntityByEmail, }); 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({}, { entities: state.entities, selectedEntity: state.selectedEntity, isFetchingEntity: state.isFetchingEntity, genericLatestEntities: Object.assign(state.genericLatestEntities), isFetchingGenericLatest: Object.assign(state.isFetchingGenericLatest), currentSuggestedSearches: state.currentSuggestedSearches, isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: state.isFetchingEntityByEmail, }); case constants.entity.RECEIVE_SUGGESTED_SEARCH: var suggested = {}; suggested[action.data.index] = action.data.entities; var suggestedSearches = Object.assign(state.currentSuggestedSearches, suggested); return { entities: state.entities, selectedEntity: state.selectedEntity, isFetchingEntity: state.isFetchingEntity, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: state.isFetchingGenericLatest, currentSuggestedSearches: Object.assign({}, suggestedSearches), isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: state.isFetchingEntityByEmail, }; case constants.entity.REQUEST_ENTITY_BY_EMAIL: return { entities: state.entities, selectedEntity: state.selectedEntity, isFetchingEntity: state.isFetchingEntity, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: state.isFetchingGenericLatest, currentSuggestedSearches: state.currentSuggestedSearches, isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: state.entityByEmail, isFetchingEntityByEmail: true, }; case constants.entity.RECEIVE_ENTITY_BY_EMAIL: return { entities: state.entities, selectedEntity: state.selectedEntity, isFetchingEntity: state.isFetchingEntity, genericLatestEntities: state.genericLatestEntities, isFetchingGenericLatest: state.isFetchingGenericLatest, currentSuggestedSearches: state.currentSuggestedSearches, isFetchingSuggestedSearches: state.isFetchingSuggestedSearches, entityByEmail: action.data.entity, isFetchingEntityByEmail: false, }; case constants.entity.RECEIVE_ENTITY_FOR_SALESFORCE: return Object.assign({}, state, { entityFromSalesForce: action.data.entity, isFetchingEntityFromSalesForce: false, }); default : return state; } };