From 46b69b3873422efb143cb5059158d0c4ef3663ad Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Mon, 20 Dec 2021 12:06:21 +0530 Subject: [PATCH] Render error --- src/domain/session/room/timeline/tiles/BaseMessageTile.js | 4 ++++ .../web/ui/session/room/timeline/ReplyPreviewView.js | 8 ++++++++ .../web/ui/session/room/timeline/TextMessageView.js | 7 +++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/domain/session/room/timeline/tiles/BaseMessageTile.js b/src/domain/session/room/timeline/tiles/BaseMessageTile.js index 6dee5fc2..b59dfa3a 100644 --- a/src/domain/session/room/timeline/tiles/BaseMessageTile.js +++ b/src/domain/session/room/timeline/tiles/BaseMessageTile.js @@ -91,6 +91,10 @@ export class BaseMessageTile extends SimpleTile { return this._entry.isUnverified; } + get isReply() { + return this._entry.isReply; + } + _getContent() { return this._entry.content; } diff --git a/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js b/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js index d2693238..5342f24a 100644 --- a/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js +++ b/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js @@ -41,3 +41,11 @@ export class ReplyPreviewView extends TemplateView { ]); } } + +export class ReplyPreviewError extends TemplateView { + render(t) { + return t.blockquote({ className: "ReplyPreviewView" }, [ + t.div({ className: "Timeline_messageBody statusMessage" }, "This reply could not be found.") + ]); + } +} diff --git a/src/platform/web/ui/session/room/timeline/TextMessageView.js b/src/platform/web/ui/session/room/timeline/TextMessageView.js index 801f075e..b1a7c0f2 100644 --- a/src/platform/web/ui/session/room/timeline/TextMessageView.js +++ b/src/platform/web/ui/session/room/timeline/TextMessageView.js @@ -16,7 +16,7 @@ limitations under the License. import {tag, text} from "../../../general/html"; import {BaseMessageView} from "./BaseMessageView.js"; -import {ReplyPreviewView} from "./ReplyPreviewView.js"; +import {ReplyPreviewError, ReplyPreviewView} from "./ReplyPreviewView.js"; export class TextMessageView extends BaseMessageView { renderMessageBody(t, vm) { @@ -27,7 +27,10 @@ export class TextMessageView extends BaseMessageView { statusMessage: vm => vm.shape === "message-status", } }, t.mapView(vm => vm.replyTextTile, replyTextTile => { - if (replyTextTile && this._interactive) { + if (vm.isReply && !replyTextTile) { + return new ReplyPreviewError(); + } + else if (replyTextTile && this._interactive) { // if this._interactive = false, this is already a reply preview, don't nest replies for now. return new ReplyPreviewView(replyTextTile); }