You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-10 09:22:25 +03:00
Merge pull request #6703 from nordeck/nic/feat/invite-reason-formatting
Allow to use basic html to format invite messages
This commit is contained in:
@@ -16,11 +16,13 @@ limitations under the License.
|
|||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
import { sanitizedHtmlNode } from "../../../HtmlUtils";
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
reason: string;
|
reason: string;
|
||||||
|
htmlReason?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IState {
|
interface IState {
|
||||||
@@ -51,7 +53,7 @@ export default class InviteReason extends React.PureComponent<IProps, IState> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return <div className={classes}>
|
return <div className={classes}>
|
||||||
<div className="mx_InviteReason_reason">{ this.props.reason }</div>
|
<div className="mx_InviteReason_reason">{ this.props.htmlReason ? sanitizedHtmlNode(this.props.htmlReason) : this.props.reason }</div>
|
||||||
<div className="mx_InviteReason_view"
|
<div className="mx_InviteReason_view"
|
||||||
onClick={this.onViewClick}
|
onClick={this.onViewClick}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import { UPDATE_EVENT } from "../../../stores/AsyncStore";
|
|||||||
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
||||||
import InviteReason from "../elements/InviteReason";
|
import InviteReason from "../elements/InviteReason";
|
||||||
|
|
||||||
|
const MemberEventHtmlReasonField = "io.element.html_reason";
|
||||||
|
|
||||||
const MessageCase = Object.freeze({
|
const MessageCase = Object.freeze({
|
||||||
NotLoggedIn: "NotLoggedIn",
|
NotLoggedIn: "NotLoggedIn",
|
||||||
Joining: "Joining",
|
Joining: "Joining",
|
||||||
@@ -492,9 +494,13 @@ export default class RoomPreviewBar extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const myUserId = MatrixClientPeg.get().getUserId();
|
const myUserId = MatrixClientPeg.get().getUserId();
|
||||||
const reason = this.props.room.currentState.getMember(myUserId).events.member.event.content.reason;
|
const memberEventContent = this.props.room.currentState.getMember(myUserId).events.member.getContent();
|
||||||
if (reason) {
|
|
||||||
reasonElement = <InviteReason reason={reason} />;
|
if (memberEventContent.reason) {
|
||||||
|
reasonElement = <InviteReason
|
||||||
|
reason={memberEventContent.reason}
|
||||||
|
htmlReason={memberEventContent[MemberEventHtmlReasonField]}
|
||||||
|
/>;
|
||||||
}
|
}
|
||||||
|
|
||||||
primaryActionHandler = this.props.onJoinClick;
|
primaryActionHandler = this.props.onJoinClick;
|
||||||
|
|||||||
Reference in New Issue
Block a user