@@ -29,6 +29,18 @@ function onGetAllUserTraits(state, { error, payload }) {
29
29
} ;
30
30
}
31
31
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
+
32
44
/**
33
45
* Handles SETTINGS/ADD_USER_TRAIT action.
34
46
* @param {Object } state
@@ -39,12 +51,16 @@ function onAddUserTrait(state, { error, payload }) {
39
51
if ( error ) {
40
52
logger . error ( 'Failed to add user trait' , payload ) ;
41
53
fireErrorMessage ( 'Failed to add user trait' , '' ) ;
42
- return state ;
54
+ return {
55
+ ...state ,
56
+ traitRequestCount : state . traitRequestCount - 1 ,
57
+ } ;
43
58
}
44
59
const newData = payload . result [ 0 ] ;
45
60
return {
46
61
...state ,
47
62
userTraits : [ ...state . userTraits , newData ] ,
63
+ traitRequestCount : state . traitRequestCount - 1 ,
48
64
} ;
49
65
}
50
66
@@ -58,7 +74,10 @@ function onUpdateUserTrait(state, { error, payload }) {
58
74
if ( error ) {
59
75
logger . error ( 'Failed to update user trait' , payload ) ;
60
76
fireErrorMessage ( 'Failed to update user trait' , '' ) ;
61
- return state ;
77
+ return {
78
+ ...state ,
79
+ traitRequestCount : state . traitRequestCount - 1 ,
80
+ } ;
62
81
}
63
82
const newData = payload . result [ 0 ] ;
64
83
const newUserTraits = state . userTraits . filter ( trait => trait . traitId !== payload . traitId ) ;
@@ -67,6 +86,7 @@ function onUpdateUserTrait(state, { error, payload }) {
67
86
return {
68
87
...state ,
69
88
userTraits : newUserTraits ,
89
+ traitRequestCount : state . traitRequestCount - 1 ,
70
90
} ;
71
91
}
72
92
@@ -80,12 +100,16 @@ function onDeleteUserTrait(state, { error, payload }) {
80
100
if ( error ) {
81
101
logger . error ( 'Failed to delete user trait' , payload ) ;
82
102
fireErrorMessage ( 'Failed to delete user trait' , '' ) ;
83
- return state ;
103
+ return {
104
+ ...state ,
105
+ traitRequestCount : state . traitRequestCount - 1 ,
106
+ } ;
84
107
}
85
108
const newUserTraits = state . userTraits . filter ( trait => trait . traitId !== payload . traitId ) ;
86
109
return {
87
110
...state ,
88
111
userTraits : newUserTraits ,
112
+ traitRequestCount : state . traitRequestCount - 1 ,
89
113
} ;
90
114
}
91
115
@@ -96,11 +120,13 @@ function onDeleteUserTrait(state, { error, payload }) {
96
120
* @return {Function } userTraits reducer.
97
121
*/
98
122
function create ( initialState = {
123
+ traitRequestCount : 0 ,
99
124
userTraits : [ ] ,
100
125
} ) {
101
126
const a = actions . settings ;
102
127
return handleActions ( {
103
128
[ a . getAllUserTraits ] : onGetAllUserTraits ,
129
+ [ a . modifyUserTraitInit ] : onModifyUserTraitInit ,
104
130
[ a . addUserTrait ] : onAddUserTrait ,
105
131
[ a . deleteUserTrait ] : onDeleteUserTrait ,
106
132
[ a . updateUserTrait ] : onUpdateUserTrait ,
0 commit comments