cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
64 lines (62 loc) • 2.35 kB
JavaScript
const constants = require( '../constants' );
const initialState = {
users: [],
isFetching: false,
potentialUsers: [],
isFetchingPotentialUsers: false,
currentUser: void 0
};
module.exports = function update( state = initialState, action = {} ) {
switch( action.type ) {
case constants.user.REQUEST_USERS:
return {
users: [],
isFetching: true,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.potentialUsers,
currentUser: state.currentUser
};
case constants.user.RECEIVE_USERS:
return {
users: action.data.users,
isFetching: state.isFetching,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: state.potentialUsers,
currentUser: state.currentUser
};
case constants.user.REQUEST_POTENTIAL_USERS:
return Object.assign( {}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: [],
isFetchingPotentialUsers: true,
currentUser: state.currentUser
} );
case constants.user.INVALID_POTENTIAL_USERS:
return Object.assign( {}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: state.potentialUsers,
isFetchingPotentialUsers: false,
currentUser: state.currentUser
} );
case constants.user.RECEIVE_POTENTIAL_USERS:
return Object.assign( {}, {
users: state.users,
isFetching: state.isFetching,
potentialUsers: action.data,
isFetchingPotentialUsers: false,
currentUser: state.currentUser
} );
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
} );
default :
return state;
}
};