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.
81 lines (78 loc) • 2.7 kB
JavaScript
import constants from '../constants' ;
const initialState = {
users: [],
isFetching: false,
potentialUsers: [],
isFetchingPotentialUsers: false,
currentUser: void 0,
isFetchingCurrentUser: false,
};
export default function update(state = initialState, action = {}) {
switch (action.type) {
case constants.user.REQUEST_USERS:
return {
users: [],
isFetching: true,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.isFetchingPotentialUsers,
currentUser: state.currentUser,
isFetchingCurrentUser: state.isFetchingCurrentUser,
};
case constants.user.RECEIVE_USERS:
return {
users: action.data.users,
isFetching: false,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.isFetchingPotentialUsers,
currentUser: state.currentUser,
isFetchingCurrentUser: state.isFetchingCurrentUser,
};
case constants.user.REQUEST_POTENTIAL_USERS:
return Object.assign({}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: [],
isFetchingPotentialUsers: true,
currentUser: state.currentUser,
isFetchingCurrentUser: state.isFetchingCurrentUser,
});
case constants.user.INVALID_POTENTIAL_USERS:
return Object.assign({}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: false,
currentUser: state.currentUser,
isFetchingCurrentUser: state.isFetchingCurrentUser,
});
case constants.user.RECEIVE_POTENTIAL_USERS:
return Object.assign({}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: action.data,
isFetchingPotentialUsers: false,
currentUser: state.currentUser,
isFetchingCurrentUser: state.isFetchingCurrentUser,
});
case constants.user.REQUEST_CURRENT_USER:
return Object.assign({}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.isFetchingPotentialUsers,
currentUser: state.currentUser,
isFetchingCurrentUser: true,
});
case constants.user.RECEIVE_CURRENT_USER:
return Object.assign({}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.isFetchingPotentialUsers,
currentUser: action.data.user,
isFetchingCurrentUser: false,
});
default :
return state;
}
};