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.
83 lines (76 loc) • 3.53 kB
JavaScript
import constants from '../constants';
const initialState = {
genericLastOrganizations: {},
isFetchingGenericOrganizations: true,
isFakeGenericOrganization: false,
pageNumber: 0,
isFetchingCurrentOrganization: false,
currentTimeStamp: void 0,
currentOrganization: void 0,
currentOrganizations: [],
};
export default function update(state = initialState, action = {}) {
switch (action.type) {
case constants.organization.REQUEST_GENERIC_LAST_ORGANIZATIONS:
let timeStamp = action.data.timeStamp;
let pageNumber = state.pageNumber;
let currentOrganizations = state.currentOrganizations;
let cleanGenericLastOrganizations = Object.assign({}, state.genericLastOrganizations);
if (state.currentTimeStamp && state.currentTimeStamp !== action.data.timeStamp) {
cleanGenericLastOrganizations[timeStamp] = void 0;
pageNumber = 0;
currentOrganizations = [];
}
return Object.assign({}, {
genericLastOrganizations: cleanGenericLastOrganizations,
isFetchingGenericOrganizations: true,
isFakeGenericOrganization: state.isFakeGenericOrganization,
pageNumber,
isFetchingCurrentOrganization: state.isFetchingCurrentOrganization,
currentOrganization: state.currentOrganization,
currentTimeStamp: timeStamp,
currentOrganizations,
});
case constants.organization.RECEIVE_GENERIC_LAST_ORGANIZATIONS:
let newGenericLastOrganizations = Object.assign({}, state.genericLastOrganizations);
if (newGenericLastOrganizations[action.data.timeStamp]) {
newGenericLastOrganizations[action.data.timeStamp] = newGenericLastOrganizations[action.data.timeStamp].concat(action.data.organizations);
} else {
newGenericLastOrganizations[action.data.timeStamp] = action.data.organizations;
}
return Object.assign({}, {
genericLastOrganizations: newGenericLastOrganizations,
isFetchingGenericOrganizations: false,
isFakeGenericOrganization: action.data.fake,
pageNumber: action.data.pageNumber,
isFetchingCurrentOrganization: state.isFetchingCurrentOrganization,
currentOrganization: state.currentOrganization,
currentTimeStamp: state.currentTimeStamp,
currentOrganizations: newGenericLastOrganizations[action.data.timeStamp],
});
case constants.organization.REQUEST_CURRENT_ORGANIZATION:
return Object.assign({}, {
genericLastOrganizations: state.genericLastOrganizations,
isFetchingGenericOrganizations: state.isFetchingGenericOrganizations,
isFakeGenericOrganization: state.isFakeGenericOrganization,
pageNumber: state.pageNumber,
isFetchingCurrentOrganization: true,
currentOrganization: state.currentOrganization,
currentTimeStamp: state.currentTimeStamp,
currentOrganizations: state.currentOrganizations,
});
case constants.organization.RECEIVE_CURRENT_ORGANIZATION:
return Object.assign({}, {
genericLastOrganizations: state.genericLastOrganizations,
isFetchingGenericOrganizations: state.isFetchingGenericOrganizations,
isFakeGenericOrganization: state.isFakeGenericOrganization,
pageNumber: state.pageNumber,
isFetchingCurrentOrganization: false,
currentOrganization: action.data.org,
currentTimeStamp: state.currentTimeStamp,
currentOrganizations: state.currentOrganizations,
});
default :
return state;
}
};