diff --git a/src/components/structures/GroupView.js b/src/components/structures/GroupView.js index e725483d29..0a85c5e7ab 100644 --- a/src/components/structures/GroupView.js +++ b/src/components/structures/GroupView.js @@ -670,8 +670,12 @@ export default React.createClass({ }); }, - _onAcceptInviteClick: function() { + _onAcceptInviteClick: async function() { this.setState({membershipBusy: true}); + + // Wait 500ms to prevent flashing + 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 +688,12 @@ export default React.createClass({ }); }, - _onRejectInviteClick: function() { + _onRejectInviteClick: async function() { this.setState({membershipBusy: true}); + + // Wait 500ms to prevent flashing + 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 +706,12 @@ export default React.createClass({ }); }, - _onJoinClick: function() { + _onJoinClick: async function() { this.setState({membershipBusy: true}); + // Wait 500ms to prevent flashing + 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 +731,14 @@ 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 + 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) => {