Merge pull request #2869 from matrix-org/matthew/redacted_tombstones
fix NPE for rooms with redacted tombstonespull/21833/head
commit
d45f43144f
|
@ -362,18 +362,22 @@ export default class MessageComposer extends React.Component {
|
||||||
} else if (this.state.tombstone) {
|
} else if (this.state.tombstone) {
|
||||||
const replacementRoomId = this.state.tombstone.getContent()['replacement_room'];
|
const replacementRoomId = this.state.tombstone.getContent()['replacement_room'];
|
||||||
|
|
||||||
|
const continuesLink = replacementRoomId ? (
|
||||||
|
<a href={makeRoomPermalink(replacementRoomId)}
|
||||||
|
className="mx_MessageComposer_roomReplaced_link"
|
||||||
|
onClick={this._onTombstoneClick}
|
||||||
|
>
|
||||||
|
{_t("The conversation continues here.")}
|
||||||
|
</a>
|
||||||
|
) : '';
|
||||||
|
|
||||||
controls.push(<div className="mx_MessageComposer_replaced_wrapper">
|
controls.push(<div className="mx_MessageComposer_replaced_wrapper">
|
||||||
<div className="mx_MessageComposer_replaced_valign">
|
<div className="mx_MessageComposer_replaced_valign">
|
||||||
<img className="mx_MessageComposer_roomReplaced_icon" src={require("../../../../res/img/room_replaced.svg")} />
|
<img className="mx_MessageComposer_roomReplaced_icon" src={require("../../../../res/img/room_replaced.svg")} />
|
||||||
<span className="mx_MessageComposer_roomReplaced_header">
|
<span className="mx_MessageComposer_roomReplaced_header">
|
||||||
{_t("This room has been replaced and is no longer active.")}
|
{_t("This room has been replaced and is no longer active.")}
|
||||||
</span><br />
|
</span><br />
|
||||||
<a href={makeRoomPermalink(replacementRoomId)}
|
{ continuesLink }
|
||||||
className="mx_MessageComposer_roomReplaced_link"
|
|
||||||
onClick={this._onTombstoneClick}
|
|
||||||
>
|
|
||||||
{_t("The conversation continues here.")}
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>);
|
</div>);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -239,6 +239,10 @@ export function makeUserPermalink(userId) {
|
||||||
export function makeRoomPermalink(roomId) {
|
export function makeRoomPermalink(roomId) {
|
||||||
const permalinkBase = `${baseUrl}/#/${roomId}`;
|
const permalinkBase = `${baseUrl}/#/${roomId}`;
|
||||||
|
|
||||||
|
if (!roomId) {
|
||||||
|
throw new Error("can't permalink a falsey roomId");
|
||||||
|
}
|
||||||
|
|
||||||
// If the roomId isn't actually a room ID, don't try to list the servers.
|
// If the roomId isn't actually a room ID, don't try to list the servers.
|
||||||
// Aliases are already routable, and don't need extra information.
|
// Aliases are already routable, and don't need extra information.
|
||||||
if (roomId[0] !== '!') return permalinkBase;
|
if (roomId[0] !== '!') return permalinkBase;
|
||||||
|
|
Loading…
Reference in New Issue