Treat replies to thread as threaded message

This commit is contained in:
RMidhunSuresh 2021-12-14 17:55:04 +05:30
parent 337d0726ce
commit 9eeeea47d9
2 changed files with 19 additions and 1 deletions

View file

@ -32,7 +32,11 @@ export class BaseEventEntry extends BaseEntry {
}
get isReply() {
return !!this.relation?.["m.in_reply_to"];
return !!(this.relation?.["m.in_reply_to"] || this.isThread);
}
get isThread() {
return this.relation?.["rel_type"] === "io.element.thread";
}
get isRedacting() {

View file

@ -51,6 +51,9 @@ function _createReplyContent(targetId, msgtype, body, formattedBody) {
}
export function createReplyContent(entry, msgtype, body) {
if (entry.isThread) {
return createThreadContent(entry, msgtype, body);
}
// TODO check for absense of sender / body / msgtype / etc?
const nonTextual = fallbackForNonTextualMessage(entry.content.msgtype);
const prefix = fallbackPrefix(entry.content.msgtype);
@ -72,3 +75,14 @@ export function createReplyContent(entry, msgtype, body) {
const newFormattedBody = formattedFallback + htmlEscape(body);
return _createReplyContent(entry.id, msgtype, newBody, newFormattedBody);
}
function createThreadContent(entry, msgtype, body) {
return {
msgtype,
body,
"m.relates_to": {
"rel_type": "m.thread",
"event_id": entry.id
}
};
}