64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
import { handleActions } from 'redux-actions';
|
|
|
|
import * as actions from '../actions/clients';
|
|
|
|
const clients = handleActions({
|
|
[actions.addClientRequest]: state => ({ ...state, processingAdding: true }),
|
|
[actions.addClientFailure]: state => ({ ...state, processingAdding: false }),
|
|
[actions.addClientSuccess]: (state) => {
|
|
const newState = {
|
|
...state,
|
|
processingAdding: false,
|
|
};
|
|
return newState;
|
|
},
|
|
|
|
[actions.deleteClientRequest]: state => ({ ...state, processingDeleting: true }),
|
|
[actions.deleteClientFailure]: state => ({ ...state, processingDeleting: false }),
|
|
[actions.deleteClientSuccess]: (state) => {
|
|
const newState = {
|
|
...state,
|
|
processingDeleting: false,
|
|
};
|
|
return newState;
|
|
},
|
|
|
|
[actions.updateClientRequest]: state => ({ ...state, processingUpdating: true }),
|
|
[actions.updateClientFailure]: state => ({ ...state, processingUpdating: false }),
|
|
[actions.updateClientSuccess]: (state) => {
|
|
const newState = {
|
|
...state,
|
|
processingUpdating: false,
|
|
};
|
|
return newState;
|
|
},
|
|
|
|
[actions.toggleClientModal]: (state, { payload }) => {
|
|
if (payload) {
|
|
const newState = {
|
|
...state,
|
|
modalType: payload.type || '',
|
|
modalClientName: payload.name || '',
|
|
isModalOpen: !state.isModalOpen,
|
|
};
|
|
return newState;
|
|
}
|
|
|
|
const newState = {
|
|
...state,
|
|
isModalOpen: !state.isModalOpen,
|
|
};
|
|
return newState;
|
|
},
|
|
}, {
|
|
processing: true,
|
|
processingAdding: false,
|
|
processingDeleting: false,
|
|
processingUpdating: false,
|
|
isModalOpen: false,
|
|
modalClientName: '',
|
|
modalType: '',
|
|
});
|
|
|
|
export default clients;
|