diff --git a/src/components/Chat.vue b/src/components/Chat.vue
index 16c6f07..2ebc7de 100644
--- a/src/components/Chat.vue
+++ b/src/components/Chat.vue
@@ -115,7 +115,7 @@
{{ replyToEvent.getContent().body | latestReply }}
- {{ replyToThreadMessage }}
+ {{ replyToThreadMessage }}
{{ $t("message.reply_image") }}
{{ $t("message.reply_audio_message") }}
{{ $t("message.reply_video") }}
@@ -1027,7 +1027,7 @@ export default {
})
.catch((err) => {
console.log("Error fetching events!", err, this);
- if (err.errcode == "M_UNKNOWN" && initialEventId) {
+ if (initialEventId) {
// Try again without initial event!
this.onRoomJoined(null);
} else {
@@ -1175,7 +1175,8 @@ export default {
Vue.set(event, "parentThread", parentEvent);
} else {
// Try to load from server.
- this.$matrix.matrixClient.getEventTimeline(this.timelineSet, event.threadRootId).then((tl) => {
+ this.$matrix.matrixClient.getEventTimeline(this.timelineSet, event.threadRootId)
+ .then((tl) => {
if (tl) {
const parentEvent = tl.getEvents().find((e) => e.getId() === event.threadRootId);
if (parentEvent) {
@@ -1197,7 +1198,7 @@ export default {
}
}
}
- });
+ }).catch(e => console.error(e));
}
},
@@ -1618,7 +1619,7 @@ export default {
this.replyToEvent = event;
this.$refs.messageInput.focus();
if (event.parentThread || event.isThreadRoot || event.isMxThread) {
- this.replyToContentType = 'm.thread';
+ this.replyToContentType = util.threadMessageType();
} else {
this.replyToContentType = event.getContent().msgtype || 'm.poll';
}
diff --git a/src/components/messages/MessageIncomingThread.vue b/src/components/messages/MessageIncomingThread.vue
index 2bab13b..32ede10 100644
--- a/src/components/messages/MessageIncomingThread.vue
+++ b/src/components/messages/MessageIncomingThread.vue
@@ -53,7 +53,7 @@ export default {
}
},
mounted() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
if (!this.thread) {
this.event.on("Event.relationsCreated", this.onRelationsCreated);
}
@@ -63,7 +63,7 @@ export default {
},
methods: {
onRelationsCreated() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
this.event.off("Event.relationsCreated", this.onRelationsCreated);
},
onItemClick(event) {
diff --git a/src/components/messages/MessageOutgoingThread.vue b/src/components/messages/MessageOutgoingThread.vue
index d3047d3..7cdb536 100644
--- a/src/components/messages/MessageOutgoingThread.vue
+++ b/src/components/messages/MessageOutgoingThread.vue
@@ -54,7 +54,7 @@ export default {
}
},
mounted() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
if (!this.thread) {
this.event.on("Event.relationsCreated", this.onRelationsCreated);
}
@@ -64,7 +64,7 @@ export default {
},
methods: {
onRelationsCreated() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
this.event.off("Event.relationsCreated", this.onRelationsCreated);
},
onItemClick(event) {
diff --git a/src/components/messages/export/MessageIncomingThreadExport.vue b/src/components/messages/export/MessageIncomingThreadExport.vue
index 5756683..a527dd2 100644
--- a/src/components/messages/export/MessageIncomingThreadExport.vue
+++ b/src/components/messages/export/MessageIncomingThreadExport.vue
@@ -20,7 +20,7 @@ export default {
}
},
mounted() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
if (!this.thread) {
this.event.on("Event.relationsCreated", this.onRelationsCreated);
}
@@ -30,7 +30,7 @@ export default {
},
methods: {
onRelationsCreated() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
this.event.off("Event.relationsCreated", this.onRelationsCreated);
},
processThread() {
diff --git a/src/components/messages/export/MessageOutgoingThreadExport.vue b/src/components/messages/export/MessageOutgoingThreadExport.vue
index a746cbe..108e5cf 100644
--- a/src/components/messages/export/MessageOutgoingThreadExport.vue
+++ b/src/components/messages/export/MessageOutgoingThreadExport.vue
@@ -20,7 +20,7 @@ export default {
}
},
mounted() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
if (!this.thread) {
this.event.on("Event.relationsCreated", this.onRelationsCreated);
}
@@ -30,7 +30,7 @@ export default {
},
methods: {
onRelationsCreated() {
- this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), "m.thread", "m.room.message");
+ this.thread = this.timelineSet.relations.getChildEventsForEvent(this.event.getId(), util.threadMessageType(), "m.room.message");
this.event.off("Event.relationsCreated", this.onRelationsCreated);
},
processThread() {
diff --git a/src/plugins/utils.js b/src/plugins/utils.js
index a4158c1..7a4b64a 100644
--- a/src/plugins/utils.js
+++ b/src/plugins/utils.js
@@ -68,6 +68,11 @@ class UploadPromise {
}
class Util {
+
+ threadMessageType() {
+ return Thread.hasServerSideSupport ? "m.thread" : "io.element.thread"
+ }
+
getAttachmentUrlAndDuration(event) {
return new Promise((resolve, reject) => {
const content = event.getContent();
@@ -400,7 +405,7 @@ class Util {
// If thread root (an eventId) is set, add that here
if (threadRoot) {
messageContent["m.relates_to"] = {
- "rel_type": Thread.hasServerSideSupport ? "m.thread" : "io.element.thread",
+ "rel_type": this.threadMessageType(),
"event_id": threadRoot
};
}