Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Merge pull request #6703 from nordeck/nic/feat/invite-reason-formatting
Browse files Browse the repository at this point in the history
Allow to use basic html to format invite messages
  • Loading branch information
turt2live authored Sep 1, 2021
2 parents f0cf004 + c32a77c commit 5692b74
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
4 changes: 3 additions & 1 deletion src/components/views/elements/InviteReason.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ limitations under the License.

import classNames from "classnames";
import React from "react";
import { sanitizedHtmlNode } from "../../../HtmlUtils";
import { _t } from "../../../languageHandler";
import { replaceableComponent } from "../../../utils/replaceableComponent";

interface IProps {
reason: string;
htmlReason?: string;
}

interface IState {
Expand Down Expand Up @@ -51,7 +53,7 @@ export default class InviteReason extends React.PureComponent<IProps, IState> {
});

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"
onClick={this.onViewClick}
>
Expand Down
12 changes: 9 additions & 3 deletions src/components/views/rooms/RoomPreviewBar.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import { UPDATE_EVENT } from "../../../stores/AsyncStore";
import { replaceableComponent } from "../../../utils/replaceableComponent";
import InviteReason from "../elements/InviteReason";

const MemberEventHtmlReasonField = "io.element.html_reason";

const MessageCase = Object.freeze({
NotLoggedIn: "NotLoggedIn",
Joining: "Joining",
Expand Down Expand Up @@ -492,9 +494,13 @@ export default class RoomPreviewBar extends React.Component {
}

const myUserId = MatrixClientPeg.get().getUserId();
const reason = this.props.room.currentState.getMember(myUserId).events.member.event.content.reason;
if (reason) {
reasonElement = <InviteReason reason={reason} />;
const memberEventContent = this.props.room.currentState.getMember(myUserId).events.member.getContent();

if (memberEventContent.reason) {
reasonElement = <InviteReason
reason={memberEventContent.reason}
htmlReason={memberEventContent[MemberEventHtmlReasonField]}
/>;
}

primaryActionHandler = this.props.onJoinClick;
Expand Down

0 comments on commit 5692b74

Please sign in to comment.