@@ -24,7 +24,7 @@ class TopcoderManagementDialog extends React.Component {
2424 managerType : { } ,
2525 showAlreadyMemberError : false ,
2626 errorMessage : null ,
27- processingInviteRequestId : null , // id of invite which request is being processing
27+ processingInviteRequestIds : [ ] , // ids of invites for which request is being processed
2828 }
2929
3030 this . onUserRoleChange = this . onUserRoleChange . bind ( this )
@@ -156,7 +156,7 @@ class TopcoderManagementDialog extends React.Component {
156156 members, currentUser, isMember, removeMember, onCancel, removeInvite, approveOrDecline, topcoderTeamInvites = [ ] ,
157157 selectedMembers, processingInvites, updatingMemberIds
158158 } = this . props
159- const { processingInviteRequestId } = this . state
159+ const { processingInviteRequestIds } = this . state
160160 const showRemove = currentUser . isAdmin || ( isMember && checkPermission ( PERMISSIONS . INVITE_TOPCODER_MEMBER ) )
161161 const showApproveDecline = currentUser . isAdmin || currentUser . isCopilotManager
162162 let i = 0
@@ -274,21 +274,21 @@ class TopcoderManagementDialog extends React.Component {
274274 removeInvite ( invite )
275275 }
276276 const approve = ( ) => {
277- this . setState ( { processingInviteRequestId : invite . id } )
277+ this . setState ( prevState => ( { processingInviteRequestIds : [ ... prevState . processingInviteRequestIds , invite . id ] } ) )
278278 approveOrDecline ( {
279279 userId : invite . userId ,
280280 status : 'request_approved'
281281 } ) . then ( ( ) => {
282- this . setState ( { processingInviteRequestId : null } )
282+ this . setState ( prevState => ( { processingInviteRequestIds : _ . xor ( prevState . processingInviteRequestIds , [ invite . id ] ) } ) )
283283 } )
284284 }
285285 const decline = ( ) => {
286- this . setState ( { processingInviteRequestId : invite . id } )
286+ this . setState ( prevState => ( { processingInviteRequestIds : [ ... prevState . processingInviteRequestIds , invite . id ] } ) )
287287 approveOrDecline ( {
288288 userId : invite . userId ,
289289 status : 'request_rejected'
290290 } ) . then ( ( ) => {
291- this . setState ( { processingInviteRequestId : null } )
291+ this . setState ( prevState => ( { processingInviteRequestIds : _ . xor ( prevState . processingInviteRequestIds , [ invite . id ] ) } ) )
292292 } )
293293 }
294294 const userFullName = getFullNameWithFallback ( invite . member )
@@ -313,7 +313,7 @@ class TopcoderManagementDialog extends React.Component {
313313 {
314314 invite . status === PROJECT_MEMBER_INVITE_STATUS_REQUESTED && showApproveDecline &&
315315 < div className = "member-remove" >
316- { ! processingInviteRequestId ? ( [
316+ { ! _ . includes ( processingInviteRequestIds , invite . id ) ? ( [
317317 < span onClick = { approve } key = "approve" > approve</ span > ,
318318 < span onClick = { decline } key = "decline" > decline</ span >
319319 ] ) : (
0 commit comments