diff --git a/src/components/views/rooms/RoomPreviewBar.js b/src/components/views/rooms/RoomPreviewBar.js index 55c39d3947..5d79463112 100644 --- a/src/components/views/rooms/RoomPreviewBar.js +++ b/src/components/views/rooms/RoomPreviewBar.js @@ -24,7 +24,6 @@ import MatrixClientPeg from '../../../MatrixClientPeg'; import dis from '../../../dispatcher'; import classNames from 'classnames'; import { _t } from '../../../languageHandler'; -import {getUserNameColorClass} from '../../../utils/FormattingUtils'; const MessageCase = Object.freeze({ NotLoggedIn: "NotLoggedIn", @@ -105,12 +104,6 @@ module.exports = React.createClass({ } }, - _onInviterClick(evt) { - evt.preventDefault(); - const member = this._getInviteMember(); - dis.dispatch({action: 'view_user_info', userId: member.userId}); - }, - _getMessageCase() { const isGuest = MatrixClientPeg.get().isGuest(); @@ -118,8 +111,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 +150,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 +184,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 +205,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' }); }, @@ -279,7 +286,8 @@ module.exports = React.createClass({ break; } case MessageCase.OtherThreePIDError: { - title = _t("Something went wrong with your invite to this room"); + title = _t("Something went wrong with your invite to %(roomName)s", + {roomName: this._roomName()}); const joinRule = this._joinRule(); const errCodeMessage = _t("%(errcode)s was returned while trying to valide your invite. You could try to pass this information on to a room admin.", {errcode: this.state.threePidFetchError.errcode}, @@ -305,14 +313,19 @@ module.exports = React.createClass({ break; } case MessageCase.InvitedEmailMismatch: { - title = _t("The room invite wasn't sent to your account"); + title = _t("This invite to %(roomName)s wasn't sent to your account", + {roomName: this._roomName()}); const joinRule = this._joinRule(); if (joinRule === "public") { subTitle = _t("You can still join it because this is a public room."); primaryActionLabel = _t("Join the discussion"); primaryActionHandler = this.props.onJoinClick; } else { - subTitle = _t("Sign in with a different account, ask for another invite, or add the e-mail address %(email)s to this account.", {email: this.props.invitedEmail}); + subTitle = _t( + "Sign in with a different account, ask for another invite, or " + + "add the e-mail address %(email)s to this account.", + {email: this.props.invitedEmail}, + ); if (joinRule !== "invite") { primaryActionLabel = _t("Try to join anyway"); primaryActionHandler = this.props.onJoinClick; @@ -321,26 +334,29 @@ module.exports = React.createClass({ break; } case MessageCase.Invite: { + const RoomAvatar = sdk.getComponent("views.avatars.RoomAvatar"); + const avatar = ; + const inviteMember = this._getInviteMember(); - let avatar; let inviterElement; if (inviteMember) { - const MemberAvatar = sdk.getComponent("views.avatars.MemberAvatar"); - avatar = (); - const inviterClasses = [ - "mx_RoomPreviewBar_inviter", - getUserNameColorClass(inviteMember.userId), - ].join(" "); - inviterElement = ( - - {inviteMember.name} - - ); + inviterElement = + + {inviteMember.rawDisplayName} + ({inviteMember.userId}) + ; } else { inviterElement = ({this.props.inviterName}); } - title = _t("Do you want to join this room?"); + 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}), @@ -354,7 +370,8 @@ module.exports = React.createClass({ } case MessageCase.ViewingRoom: { if (this.props.canPreview) { - title = _t("You're previewing this room. Want to join it?"); + title = _t("You're previewing %(roomName)s. Want to join it?", + {roomName: this._roomName()}); } else { title = _t("%(roomName)s can't be previewed. Do you want to join it?", {roomName: this._roomName(true)}); @@ -372,7 +389,10 @@ module.exports = React.createClass({ title = _t("%(roomName)s is not accessible at this time.", {roomName: this._roomName(true)}); subTitle = [ _t("Try again later, or ask a room admin to check if you have access."), - _t("%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, please submit a bug report.", + _t( + "%(errcode)s was returned while trying to access the room. " + + "If you think you're seeing this message in error, please " + + "submit a bug report.", { errcode: this.props.error.errcode }, { issueLink: label => { label } }, diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index d7d2b108a2..162e20dcf7 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -803,18 +803,19 @@ "Forget this room": "Forget this room", "Re-join": "Re-join", "You were banned from %(roomName)s by %(memberName)s": "You were banned from %(roomName)s by %(memberName)s", - "Something went wrong with your invite to this room": "Something went wrong with your invite to this room", + "Something went wrong with your invite to %(roomName)s": "Something went wrong with your invite to %(roomName)s", "%(errcode)s was returned while trying to valide your invite. You could try to pass this information on to a room admin.": "%(errcode)s was returned while trying to valide your invite. You could try to pass this information on to a room admin.", "You can only join it with a working invite.": "You can only join it with a working invite.", "You can still join it because this is a public room.": "You can still join it because this is a public room.", "Join the discussion": "Join the discussion", "Try to join anyway": "Try to join anyway", - "The room invite wasn't sent to your account": "The room invite wasn't sent to your account", + "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 join this room?": "Do you want to join this room?", + "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", - "You're previewing this room. Want to join it?": "You're previewing this room. Want to join it?", + "You're previewing %(roomName)s. Want to join it?": "You're previewing %(roomName)s. Want to join it?", "%(roomName)s can't be previewed. Do you want to join it?": "%(roomName)s can't be previewed. Do you want to join it?", "%(roomName)s does not exist.": "%(roomName)s does not exist.", "This room doesn't exist. Are you sure you're at the right place?": "This room doesn't exist. Are you sure you're at the right place?",