diff --git a/src/components/views/messages/MKeyVerificationRequest.js b/src/components/views/messages/MKeyVerificationRequest.js index 9a48858bc7..d02319119e 100644 --- a/src/components/views/messages/MKeyVerificationRequest.js +++ b/src/components/views/messages/MKeyVerificationRequest.js @@ -59,7 +59,6 @@ export default class MKeyVerificationRequest extends React.Component { }; _onAcceptClicked = async () => { - this.setState({acceptOrCancelClicked: true}); const request = this.props.mxEvent.verificationRequest; if (request) { try { @@ -72,7 +71,6 @@ export default class MKeyVerificationRequest extends React.Component { }; _onRejectClicked = async () => { - this.setState({acceptOrCancelClicked: true}); const request = this.props.mxEvent.verificationRequest; if (request) { try { @@ -96,10 +94,20 @@ export default class MKeyVerificationRequest extends React.Component { _cancelledLabel(userId) { const client = MatrixClientPeg.get(); const myUserId = client.getUserId(); + const {cancellationCode} = this.props.mxEvent.verificationRequest; + const declined = cancellationCode === "m.user"; if (userId === myUserId) { - return _t("You cancelled"); + if (declined) { + return _t("You declined"); + } else { + return _t("You cancelled"); + } } else { - return _t("%(name)s cancelled", {name: getNameForEventRoom(userId, this.props.mxEvent.getRoomId())}); + if (declined) { + return _t("%(name)s declined", {name: getNameForEventRoom(userId, this.props.mxEvent.getRoomId())}); + } else { + return _t("%(name)s cancelled", {name: getNameForEventRoom(userId, this.props.mxEvent.getRoomId())}); + } } } @@ -118,15 +126,19 @@ export default class MKeyVerificationRequest extends React.Component { let subtitle; let stateNode; - const accepted = request.ready || request.started || request.done; - if (accepted || request.cancelled) { + if (!request.canAccept) { let stateLabel; + const accepted = request.ready || request.started || request.done; if (accepted) { stateLabel = ( {this._acceptedLabel(request.receivingUserId)} ); - } else { + } else if (request.cancelled) { stateLabel = this._cancelledLabel(request.cancellingUserId); + } else if (request.accepting) { + stateLabel = _t("accepting …"); + } else if (request.declining) { + stateLabel = _t("declining …"); } stateNode = (
{stateLabel}
); } @@ -137,11 +149,10 @@ export default class MKeyVerificationRequest extends React.Component { _t("%(name)s wants to verify", {name})}); subtitle = (
{ userLabelForEventRoom(request.requestingUserId, mxEvent.getRoomId())}
); - if (request.requested && !request.observeOnly) { - const disabled = this.state.acceptOrCancelClicked; + if (request.canAccept) { stateNode = (
- - + +
); } } else { // request sent by us diff --git a/src/components/views/toasts/VerificationRequestToast.js b/src/components/views/toasts/VerificationRequestToast.js index a831505a05..4a881ae852 100644 --- a/src/components/views/toasts/VerificationRequestToast.js +++ b/src/components/views/toasts/VerificationRequestToast.js @@ -58,7 +58,7 @@ export default class VerificationRequestToast extends React.PureComponent { _checkRequestIsPending = () => { const {request} = this.props; - if (request.ready || request.done || request.cancelled || request.observeOnly) { + if (!request.canAccept) { ToastStore.sharedInstance().dismissToast(this.props.toastKey); } }; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index c1ac0b1434..474c5e15f3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1240,8 +1240,12 @@ "%(name)s cancelled verifying": "%(name)s cancelled verifying", "You accepted": "You accepted", "%(name)s accepted": "%(name)s accepted", + "You declined": "You declined", "You cancelled": "You cancelled", + "%(name)s declined": "%(name)s declined", "%(name)s cancelled": "%(name)s cancelled", + "accepting …": "accepting …", + "declining …": "declining …", "%(name)s wants to verify": "%(name)s wants to verify", "You sent a verification request": "You sent a verification request", "Error decrypting video": "Error decrypting video",