Merge pull request #2936 from jryans/preview-bar-fire
Add important info to new preview bar
This commit is contained in:
commit
6db12f84df
2 changed files with 55 additions and 34 deletions
|
@ -24,7 +24,6 @@ import MatrixClientPeg from '../../../MatrixClientPeg';
|
||||||
import dis from '../../../dispatcher';
|
import dis from '../../../dispatcher';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { _t } from '../../../languageHandler';
|
import { _t } from '../../../languageHandler';
|
||||||
import {getUserNameColorClass} from '../../../utils/FormattingUtils';
|
|
||||||
|
|
||||||
const MessageCase = Object.freeze({
|
const MessageCase = Object.freeze({
|
||||||
NotLoggedIn: "NotLoggedIn",
|
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() {
|
_getMessageCase() {
|
||||||
const isGuest = MatrixClientPeg.get().isGuest();
|
const isGuest = MatrixClientPeg.get().isGuest();
|
||||||
|
|
||||||
|
@ -118,8 +111,7 @@ module.exports = React.createClass({
|
||||||
return MessageCase.NotLoggedIn;
|
return MessageCase.NotLoggedIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
const myMember = this.props.room &&
|
const myMember = this._getMyMember();
|
||||||
this.props.room.getMember(MatrixClientPeg.get().getUserId());
|
|
||||||
|
|
||||||
if (myMember) {
|
if (myMember) {
|
||||||
if (myMember.isKicked()) {
|
if (myMember.isKicked()) {
|
||||||
|
@ -158,9 +150,7 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
_getKickOrBanInfo() {
|
_getKickOrBanInfo() {
|
||||||
const myMember = this.props.room ?
|
const myMember = this._getMyMember();
|
||||||
this.props.room.getMember(MatrixClientPeg.get().getUserId()) :
|
|
||||||
null;
|
|
||||||
if (!myMember) {
|
if (!myMember) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
@ -194,6 +184,13 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getMyMember() {
|
||||||
|
return (
|
||||||
|
this.props.room &&
|
||||||
|
this.props.room.getMember(MatrixClientPeg.get().getUserId())
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
_getInviteMember: function() {
|
_getInviteMember: function() {
|
||||||
const {room} = this.props;
|
const {room} = this.props;
|
||||||
if (!room) {
|
if (!room) {
|
||||||
|
@ -208,6 +205,16 @@ module.exports = React.createClass({
|
||||||
return room.currentState.getMember(inviterUserId);
|
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() {
|
onLoginClick: function() {
|
||||||
dis.dispatch({ action: 'start_login' });
|
dis.dispatch({ action: 'start_login' });
|
||||||
},
|
},
|
||||||
|
@ -279,7 +286,8 @@ module.exports = React.createClass({
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MessageCase.OtherThreePIDError: {
|
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 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.",
|
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},
|
{errcode: this.state.threePidFetchError.errcode},
|
||||||
|
@ -305,14 +313,19 @@ module.exports = React.createClass({
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MessageCase.InvitedEmailMismatch: {
|
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();
|
const joinRule = this._joinRule();
|
||||||
if (joinRule === "public") {
|
if (joinRule === "public") {
|
||||||
subTitle = _t("You can still join it because this is a public room.");
|
subTitle = _t("You can still join it because this is a public room.");
|
||||||
primaryActionLabel = _t("Join the discussion");
|
primaryActionLabel = _t("Join the discussion");
|
||||||
primaryActionHandler = this.props.onJoinClick;
|
primaryActionHandler = this.props.onJoinClick;
|
||||||
} else {
|
} 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") {
|
if (joinRule !== "invite") {
|
||||||
primaryActionLabel = _t("Try to join anyway");
|
primaryActionLabel = _t("Try to join anyway");
|
||||||
primaryActionHandler = this.props.onJoinClick;
|
primaryActionHandler = this.props.onJoinClick;
|
||||||
|
@ -321,26 +334,29 @@ module.exports = React.createClass({
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MessageCase.Invite: {
|
case MessageCase.Invite: {
|
||||||
|
const RoomAvatar = sdk.getComponent("views.avatars.RoomAvatar");
|
||||||
|
const avatar = <RoomAvatar room={this.props.room} />;
|
||||||
|
|
||||||
const inviteMember = this._getInviteMember();
|
const inviteMember = this._getInviteMember();
|
||||||
let avatar;
|
|
||||||
let inviterElement;
|
let inviterElement;
|
||||||
if (inviteMember) {
|
if (inviteMember) {
|
||||||
const MemberAvatar = sdk.getComponent("views.avatars.MemberAvatar");
|
inviterElement = <span>
|
||||||
avatar = (<MemberAvatar member={inviteMember} onClick={this._onInviterClick} />);
|
<span className="mx_RoomPreviewBar_inviter">
|
||||||
const inviterClasses = [
|
{inviteMember.rawDisplayName}
|
||||||
"mx_RoomPreviewBar_inviter",
|
</span> ({inviteMember.userId})
|
||||||
getUserNameColorClass(inviteMember.userId),
|
</span>;
|
||||||
].join(" ");
|
|
||||||
inviterElement = (
|
|
||||||
<a onClick={this._onInviterClick} className={inviterClasses}>
|
|
||||||
{inviteMember.name}
|
|
||||||
</a>
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
inviterElement = (<span className="mx_RoomPreviewBar_inviter">{this.props.inviterName}</span>);
|
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 = [
|
subTitle = [
|
||||||
avatar,
|
avatar,
|
||||||
_t("<userName/> invited you", {}, {userName: () => inviterElement}),
|
_t("<userName/> invited you", {}, {userName: () => inviterElement}),
|
||||||
|
@ -354,7 +370,8 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
case MessageCase.ViewingRoom: {
|
case MessageCase.ViewingRoom: {
|
||||||
if (this.props.canPreview) {
|
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 {
|
} else {
|
||||||
title = _t("%(roomName)s can't be previewed. Do you want to join it?",
|
title = _t("%(roomName)s can't be previewed. Do you want to join it?",
|
||||||
{roomName: this._roomName(true)});
|
{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)});
|
title = _t("%(roomName)s is not accessible at this time.", {roomName: this._roomName(true)});
|
||||||
subTitle = [
|
subTitle = [
|
||||||
_t("Try again later, or ask a room admin to check if you have access."),
|
_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 },
|
{ errcode: this.props.error.errcode },
|
||||||
{ issueLink: label => <a href="https://github.com/vector-im/riot-web/issues/new/choose"
|
{ issueLink: label => <a href="https://github.com/vector-im/riot-web/issues/new/choose"
|
||||||
target="_blank" rel="noopener">{ label }</a> },
|
target="_blank" rel="noopener">{ label }</a> },
|
||||||
|
|
|
@ -803,18 +803,19 @@
|
||||||
"Forget this room": "Forget this room",
|
"Forget this room": "Forget this room",
|
||||||
"Re-join": "Re-join",
|
"Re-join": "Re-join",
|
||||||
"You were banned from %(roomName)s by %(memberName)s": "You were banned from %(roomName)s by %(memberName)s",
|
"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.",
|
"%(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 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.",
|
"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",
|
"Join the discussion": "Join the discussion",
|
||||||
"Try to join anyway": "Try to join anyway",
|
"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.",
|
"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",
|
"<userName/> invited you": "<userName/> invited you",
|
||||||
"Reject": "Reject",
|
"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 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.",
|
"%(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?",
|
"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 a new issue