@@ -32,6 +32,7 @@ const initialState = {
3232 isLoading : true ,
3333 processing : false ,
3434 processingMembers : false ,
35+ updatingMemberIds : [ ] ,
3536 processingInvites : false ,
3637 processingAttachments : false ,
3738 attachmentsAwaitingPermission : null ,
@@ -624,11 +625,15 @@ export const projectState = function (state=initialState, action) {
624625
625626 case ADD_PROJECT_MEMBER_PENDING :
626627 case REMOVE_PROJECT_MEMBER_PENDING :
627- case UPDATE_PROJECT_MEMBER_PENDING :
628628 return Object . assign ( { } , state , {
629629 processingMembers : true
630630 } )
631631
632+ case UPDATE_PROJECT_MEMBER_PENDING :
633+ return Object . assign ( { } , state , {
634+ updatingMemberIds : [ ...state . updatingMemberIds , action . meta . memberId ]
635+ } )
636+
632637 case ADD_PROJECT_MEMBER_SUCCESS :
633638 return update ( state , {
634639 processingMembers : { $set : false } ,
@@ -694,9 +699,9 @@ export const projectState = function (state=initialState, action) {
694699 } )
695700 updatedMembers . splice ( idx , 1 , action . payload )
696701 return update ( state , {
697- processingMembers : { $set : false } ,
698702 project : { members : { $set : updatedMembers } } ,
699- projectNonDirty : { members : { $set : updatedMembers } }
703+ projectNonDirty : { members : { $set : updatedMembers } } ,
704+ updatingMemberIds : { $set : _ . xor ( state . updatingMemberIds , [ action . payload . id ] ) }
700705 } )
701706 }
702707
@@ -821,7 +826,6 @@ export const projectState = function (state=initialState, action) {
821826 case REMOVE_TOPCODER_MEMBER_INVITE_FAILURE :
822827 case REMOVE_CUSTOMER_INVITE_FAILURE :
823828 case REMOVE_PROJECT_MEMBER_FAILURE :
824- case UPDATE_PROJECT_MEMBER_FAILURE :
825829 case UPDATE_PROJECT_ATTACHMENT_FAILURE :
826830 case ADD_PROJECT_ATTACHMENT_FAILURE :
827831 case REMOVE_PROJECT_ATTACHMENT_FAILURE :
@@ -848,6 +852,11 @@ export const projectState = function (state=initialState, action) {
848852 error : parseErrorObj ( action ) ,
849853 inviteError : parseErrorObj ( action )
850854 } )
855+ case UPDATE_PROJECT_MEMBER_FAILURE :
856+ return Object . assign ( { } , state , {
857+ updatingMemberIds : _ . remove ( state . updatingMemberIds , [ action . payload . id ] ) ,
858+ error : parseErrorObj ( action )
859+ } )
851860
852861 default :
853862 return state
0 commit comments