cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
80 lines (78 loc) • 3.18 kB
JavaScript
const constants = require( '../constants' );
const initialState = {
users: [],
isFetching: false,
potentialUsers: [],
isFetchingPotentialUsers: false,
currentUser: void 0,
isFetchingCurrentUser: false
};
module.exports = 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;
}
};