forked from mystiq/hydrogen-web
Render error
This commit is contained in:
parent
545aae31d9
commit
67da746b48
2 changed files with 34 additions and 14 deletions
|
@ -73,9 +73,27 @@ export class TextTile extends BaseTextTile {
|
||||||
if (!this._replyTextTile) {
|
if (!this._replyTextTile) {
|
||||||
const entry = this._entry.contextEntry;
|
const entry = this._entry.contextEntry;
|
||||||
if (entry) {
|
if (entry) {
|
||||||
this._replyTextTile = new TextTile(this.childOptions({entry, roomVM: this._roomVM, timeline: this._timeline}));
|
this._replyTextTile = new ReplyPreviewTile(this.childOptions({entry, roomVM: this._roomVM, timeline: this._timeline}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this._replyTextTile;
|
return this._replyTextTile;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ReplyPreviewTile extends TextTile {
|
||||||
|
constructor(options) {
|
||||||
|
super(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
get isRedacted() {
|
||||||
|
return this._entry.isRedacted;
|
||||||
|
}
|
||||||
|
|
||||||
|
get decryptionError() {
|
||||||
|
return !!this._entry.decryptionError;
|
||||||
|
}
|
||||||
|
|
||||||
|
get error() {
|
||||||
|
return this.isRedacted || this.decryptionError;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -31,23 +31,25 @@ export class ReplyPreviewView extends TemplateView {
|
||||||
return replyContainer;
|
return replyContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
_renderError({ error, avatar, senderName }) {
|
_renderError(vm) {
|
||||||
const errorMessage = this._getErrorMessage(error);
|
const errorMessage = this._getErrorMessage(vm);
|
||||||
const children = [tag.span({ className: "statusMessage" }, errorMessage), tag.br()];
|
const children = [tag.span({ className: "statusMessage" }, errorMessage), tag.br()];
|
||||||
const reply = avatar && senderName ? this._renderReplyHeader(avatar, senderName, children) :
|
let reply;
|
||||||
tag.blockquote(children);
|
try {
|
||||||
|
reply = this._renderReplyHeader(vm, children);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
reply = tag.blockquote(children);
|
||||||
|
}
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
_getErrorMessage(error) {
|
_getErrorMessage(vm) {
|
||||||
switch (error.name) {
|
if (vm.isRedacted) {
|
||||||
case "ContextEntryNotFound":
|
|
||||||
case "MissingBody":
|
|
||||||
return "This message could not be fetched.";
|
|
||||||
case "MessageRedacted":
|
|
||||||
return "This message has been deleted.";
|
return "This message has been deleted.";
|
||||||
default:
|
}
|
||||||
return error.message;
|
else if (vm.decryptionError) {
|
||||||
|
return "This message could not be decrypted."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue