Merge pull request #1832 from matrix-org/luke/delay-group-leave-or-join
Add 500ms delay to show `membershipBusy` for longerpull/21833/head
						commit
						1b01c30fce
					
				|  | @ -670,8 +670,13 @@ export default React.createClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onAcceptInviteClick: function() { | ||||
|     _onAcceptInviteClick: async function() { | ||||
|         this.setState({membershipBusy: true}); | ||||
| 
 | ||||
|         // Wait 500ms to prevent flashing. Do this before sending a request otherwise we risk the
 | ||||
|         // spinner disappearing after we have fetched new group data.
 | ||||
|         await Promise.delay(500); | ||||
| 
 | ||||
|         this._groupStore.acceptGroupInvite().then(() => { | ||||
|             // don't reset membershipBusy here: wait for the membership change to come down the sync
 | ||||
|         }).catch((e) => { | ||||
|  | @ -684,8 +689,13 @@ export default React.createClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onRejectInviteClick: function() { | ||||
|     _onRejectInviteClick: async function() { | ||||
|         this.setState({membershipBusy: true}); | ||||
| 
 | ||||
|         // Wait 500ms to prevent flashing. Do this before sending a request otherwise we risk the
 | ||||
|         // spinner disappearing after we have fetched new group data.
 | ||||
|         await Promise.delay(500); | ||||
| 
 | ||||
|         this._groupStore.leaveGroup().then(() => { | ||||
|             // don't reset membershipBusy here: wait for the membership change to come down the sync
 | ||||
|         }).catch((e) => { | ||||
|  | @ -698,9 +708,13 @@ export default React.createClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onJoinClick: function() { | ||||
|     _onJoinClick: async function() { | ||||
|         this.setState({membershipBusy: true}); | ||||
| 
 | ||||
|         // Wait 500ms to prevent flashing. Do this before sending a request otherwise we risk the
 | ||||
|         // spinner disappearing after we have fetched new group data.
 | ||||
|         await Promise.delay(500); | ||||
| 
 | ||||
|         this._groupStore.joinGroup().then(() => { | ||||
|             // don't reset membershipBusy here: wait for the membership change to come down the sync
 | ||||
|         }).catch((e) => { | ||||
|  | @ -720,10 +734,15 @@ export default React.createClass({ | |||
|             description: _t("Leave %(groupName)s?", {groupName: this.props.groupId}), | ||||
|             button: _t("Leave"), | ||||
|             danger: true, | ||||
|             onFinished: (confirmed) => { | ||||
|             onFinished: async (confirmed) => { | ||||
|                 if (!confirmed) return; | ||||
| 
 | ||||
|                 this.setState({membershipBusy: true}); | ||||
| 
 | ||||
|                 // Wait 500ms to prevent flashing. Do this before sending a request otherwise we risk the
 | ||||
|                 // spinner disappearing after we have fetched new group data.
 | ||||
|                 await Promise.delay(500); | ||||
| 
 | ||||
|                 this._groupStore.leaveGroup().then(() => { | ||||
|                     // don't reset membershipBusy here: wait for the membership change to come down the sync
 | ||||
|                 }).catch((e) => { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Luke Barnard
						Luke Barnard