UNPKG

cluedin-widget

Version:

This is the project for creating and managing widgets in CluedIn.

80 lines (78 loc) 3.18 kB
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; } };