From ad6be3cc1bda85f8788e65318741475c09711eea Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Mon, 29 Apr 2019 17:48:48 +0100 Subject: [PATCH] Change invite preview text for DMs Use more specifc text for when previewing an invite to a direct message room. --- src/components/views/rooms/RoomPreviewBar.js | 34 ++++++++++++++++---- src/i18n/strings/en_EN.json | 1 + 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/components/views/rooms/RoomPreviewBar.js b/src/components/views/rooms/RoomPreviewBar.js index 9a64ba5cf6..02a93ebcc0 100644 --- a/src/components/views/rooms/RoomPreviewBar.js +++ b/src/components/views/rooms/RoomPreviewBar.js @@ -118,8 +118,7 @@ module.exports = React.createClass({ return MessageCase.NotLoggedIn; } - const myMember = this.props.room && - this.props.room.getMember(MatrixClientPeg.get().getUserId()); + const myMember = this._getMyMember(); if (myMember) { if (myMember.isKicked()) { @@ -158,9 +157,7 @@ module.exports = React.createClass({ }, _getKickOrBanInfo() { - const myMember = this.props.room ? - this.props.room.getMember(MatrixClientPeg.get().getUserId()) : - null; + const myMember = this._getMyMember(); if (!myMember) { return {}; } @@ -194,6 +191,13 @@ module.exports = React.createClass({ } }, + _getMyMember() { + return ( + this.props.room && + this.props.room.getMember(MatrixClientPeg.get().getUserId()) + ); + }, + _getInviteMember: function() { const {room} = this.props; if (!room) { @@ -208,6 +212,16 @@ module.exports = React.createClass({ return room.currentState.getMember(inviterUserId); }, + _isDMInvite() { + const myMember = this._getMyMember(); + if (!myMember) { + return false; + } + const memberEvent = myMember.events.member; + const memberContent = memberEvent.getContent(); + return memberContent.membership === "invite" && memberContent.is_direct; + }, + onLoginClick: function() { dis.dispatch({ action: 'start_login' }); }, @@ -346,8 +360,14 @@ module.exports = React.createClass({ inviterElement = ({this.props.inviterName}); } - title = _t("Do you want to join %(roomName)s?", - {roomName: this._roomName()}); + const isDM = this._isDMInvite(); + if (isDM) { + title = _t("Do you want to chat with %(user)s?", + { user: inviteMember.name }); + } else { + title = _t("Do you want to join %(roomName)s?", + { roomName: this._roomName() }); + } subTitle = [ avatar, _t(" invited you", {}, {userName: () => inviterElement}), diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 9197b19ff0..dd15020d79 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -812,6 +812,7 @@ "Try to join anyway": "Try to join anyway", "This invite to %(roomName)s wasn't sent to your account": "This invite to %(roomName)s wasn't sent to your account", "Sign in with a different account, ask for another invite, or add the e-mail address %(email)s to this account.": "Sign in with a different account, ask for another invite, or add the e-mail address %(email)s to this account.", + "Do you want to chat with %(user)s?": "Do you want to chat with %(user)s?", "Do you want to join %(roomName)s?": "Do you want to join %(roomName)s?", " invited you": " invited you", "Reject": "Reject",