From 91912bdb8d96e36755085719b5e7aea0d89b0b7b Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Thu, 16 Dec 2021 13:47:14 +0530 Subject: [PATCH] Create tile using tileCreator --- .../session/room/timeline/tiles/TextTile.js | 3 ++- .../session/room/timeline/tilesCreator.js | 5 ++-- .../session/room/timeline/ReplyPreviewView.js | 24 ++++--------------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/domain/session/room/timeline/tiles/TextTile.js b/src/domain/session/room/timeline/tiles/TextTile.js index 255e27fb..9c70dbfa 100644 --- a/src/domain/session/room/timeline/tiles/TextTile.js +++ b/src/domain/session/room/timeline/tiles/TextTile.js @@ -22,6 +22,7 @@ export class TextTile extends BaseTextTile { constructor(options) { super(options); + this._tileCreator = options.tileCreator; this._replyTextTile = null; } @@ -73,7 +74,7 @@ export class TextTile extends BaseTextTile { if (!this._replyTextTile) { const entry = this._entry.contextEntry; if (entry) { - this._replyTextTile = new TextTile(this.childOptions({entry, roomVM: this._roomVM, timeline: this._timeline})); + this._replyTextTile = this._tileCreator(entry); } } return this._replyTextTile; diff --git a/src/domain/session/room/timeline/tilesCreator.js b/src/domain/session/room/timeline/tilesCreator.js index 9dde00a2..8634ea6f 100644 --- a/src/domain/session/room/timeline/tilesCreator.js +++ b/src/domain/session/room/timeline/tilesCreator.js @@ -28,8 +28,8 @@ import {EncryptionEnabledTile} from "./tiles/EncryptionEnabledTile.js"; import {MissingAttachmentTile} from "./tiles/MissingAttachmentTile.js"; export function tilesCreator(baseOptions) { - return function tilesCreator(entry, emitUpdate) { - const options = Object.assign({entry, emitUpdate}, baseOptions); + const creator = function tilesCreator(entry, emitUpdate) { + const options = Object.assign({entry, emitUpdate, tileCreator: creator}, baseOptions); if (entry.isGap) { return new GapTile(options); } else if (entry.isPending && entry.pendingEvent.isMissingAttachments) { @@ -77,4 +77,5 @@ export function tilesCreator(baseOptions) { } } } + return creator; } diff --git a/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js b/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js index 15a69c3e..ce013c5c 100644 --- a/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js +++ b/src/platform/web/ui/session/room/timeline/ReplyPreviewView.js @@ -26,33 +26,17 @@ export class ReplyPreviewView extends TemplateView { while (replyContainer.lastChild) { replyContainer.removeChild(replyContainer.lastChild); } - replyContainer.appendChild(vm.isRedacted? this._renderError(vm) : this._renderReplyPreview(vm)); + replyContainer.appendChild(vm.isRedacted? this._renderRedaction(vm) : this._renderReplyPreview(vm)); }) return replyContainer; } - _renderError(vm) { - const errorMessage = this._getErrorMessage(vm); - const children = [tag.span({ className: "statusMessage" }, errorMessage), tag.br()]; - let reply; - try { - reply = this._renderReplyHeader(vm, children); - } - catch { - reply = tag.blockquote(children); - } + _renderRedaction(vm) { + const children = [tag.span({ className: "statusMessage" }, vm.description), tag.br()]; + const reply = this._renderReplyHeader(vm, children); return reply; } - _getErrorMessage(vm) { - if (vm.isRedacted) { - return "This message has been deleted."; - } - else if (vm.decryptionError) { - return vm.decryptionError.message; - } - } - _renderReplyPreview(vm) { const reply = this._renderReplyHeader(vm); const body = vm.body;