mirror of https://github.com/vector-im/riot-web
				
				
				
			Merge pull request #2936 from jryans/preview-bar-fire
Add important info to new preview barpull/21833/head
						commit
						6db12f84df
					
				|  | @ -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 = <RoomAvatar room={this.props.room} />; | ||||
| 
 | ||||
|                 const inviteMember = this._getInviteMember(); | ||||
|                 let avatar; | ||||
|                 let inviterElement; | ||||
|                 if (inviteMember) { | ||||
|                     const MemberAvatar = sdk.getComponent("views.avatars.MemberAvatar"); | ||||
|                     avatar = (<MemberAvatar member={inviteMember} onClick={this._onInviterClick} />); | ||||
|                     const inviterClasses = [ | ||||
|                         "mx_RoomPreviewBar_inviter", | ||||
|                         getUserNameColorClass(inviteMember.userId), | ||||
|                     ].join(" "); | ||||
|                     inviterElement = ( | ||||
|                         <a onClick={this._onInviterClick} className={inviterClasses}> | ||||
|                             {inviteMember.name} | ||||
|                         </a> | ||||
|                     ); | ||||
|                     inviterElement = <span> | ||||
|                         <span className="mx_RoomPreviewBar_inviter"> | ||||
|                             {inviteMember.rawDisplayName} | ||||
|                         </span> ({inviteMember.userId}) | ||||
|                     </span>; | ||||
|                 } else { | ||||
|                     inviterElement = (<span className="mx_RoomPreviewBar_inviter">{this.props.inviterName}</span>); | ||||
|                 } | ||||
| 
 | ||||
|                 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("<userName/> 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 <issueLink>submit a bug report</issueLink>.", | ||||
|                     _t( | ||||
|                         "%(errcode)s was returned while trying to access the room. " + | ||||
|                         "If you think you're seeing this message in error, please " + | ||||
|                         "<issueLink>submit a bug report</issueLink>.", | ||||
|                         { errcode: this.props.error.errcode }, | ||||
|                         { issueLink: label => <a href="https://github.com/vector-im/riot-web/issues/new/choose" | ||||
|                             target="_blank" rel="noopener">{ label }</a> }, | ||||
|  |  | |||
|  | @ -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?", | ||||
|     "<userName/> invited you": "<userName/> 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?", | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 J. Ryan Stinnett
						J. Ryan Stinnett