@@ -29,6 +29,18 @@ function onGetAllUserTraits(state, { error, payload }) {
2929 } ;
3030}
3131
32+ /**
33+ * Handles SETTINGS/MODIFY_USER_TRAIT_INIT action.
34+ * @param {Object } state *
35+ * @return {Object } New state.
36+ */
37+ function onModifyUserTraitInit ( state ) {
38+ return {
39+ ...state ,
40+ traitRequestCount : state . traitRequestCount + 1 ,
41+ } ;
42+ }
43+
3244/**
3345 * Handles SETTINGS/ADD_USER_TRAIT action.
3446 * @param {Object } state
@@ -39,12 +51,16 @@ function onAddUserTrait(state, { error, payload }) {
3951 if ( error ) {
4052 logger . error ( 'Failed to add user trait' , payload ) ;
4153 fireErrorMessage ( 'Failed to add user trait' , '' ) ;
42- return state ;
54+ return {
55+ ...state ,
56+ traitRequestCount : state . traitRequestCount - 1 ,
57+ } ;
4358 }
4459 const newData = payload . result [ 0 ] ;
4560 return {
4661 ...state ,
4762 userTraits : [ ...state . userTraits , newData ] ,
63+ traitRequestCount : state . traitRequestCount - 1 ,
4864 } ;
4965}
5066
@@ -58,7 +74,10 @@ function onUpdateUserTrait(state, { error, payload }) {
5874 if ( error ) {
5975 logger . error ( 'Failed to update user trait' , payload ) ;
6076 fireErrorMessage ( 'Failed to update user trait' , '' ) ;
61- return state ;
77+ return {
78+ ...state ,
79+ traitRequestCount : state . traitRequestCount - 1 ,
80+ } ;
6281 }
6382 const newData = payload . result [ 0 ] ;
6483 const newUserTraits = state . userTraits . filter ( trait => trait . traitId !== payload . traitId ) ;
@@ -67,6 +86,7 @@ function onUpdateUserTrait(state, { error, payload }) {
6786 return {
6887 ...state ,
6988 userTraits : newUserTraits ,
89+ traitRequestCount : state . traitRequestCount - 1 ,
7090 } ;
7191}
7292
@@ -80,12 +100,16 @@ function onDeleteUserTrait(state, { error, payload }) {
80100 if ( error ) {
81101 logger . error ( 'Failed to delete user trait' , payload ) ;
82102 fireErrorMessage ( 'Failed to delete user trait' , '' ) ;
83- return state ;
103+ return {
104+ ...state ,
105+ traitRequestCount : state . traitRequestCount - 1 ,
106+ } ;
84107 }
85108 const newUserTraits = state . userTraits . filter ( trait => trait . traitId !== payload . traitId ) ;
86109 return {
87110 ...state ,
88111 userTraits : newUserTraits ,
112+ traitRequestCount : state . traitRequestCount - 1 ,
89113 } ;
90114}
91115
@@ -96,11 +120,13 @@ function onDeleteUserTrait(state, { error, payload }) {
96120 * @return {Function } userTraits reducer.
97121 */
98122function create ( initialState = {
123+ traitRequestCount : 0 ,
99124 userTraits : [ ] ,
100125} ) {
101126 const a = actions . settings ;
102127 return handleActions ( {
103128 [ a . getAllUserTraits ] : onGetAllUserTraits ,
129+ [ a . modifyUserTraitInit ] : onModifyUserTraitInit ,
104130 [ a . addUserTrait ] : onAddUserTrait ,
105131 [ a . deleteUserTrait ] : onDeleteUserTrait ,
106132 [ a . updateUserTrait ] : onUpdateUserTrait ,
0 commit comments