From 5d0e96a675b8f7256c83ba2db253ec9bfa2689da Mon Sep 17 00:00:00 2001 From: adb Date: Fri, 19 Mar 2021 22:08:36 +0100 Subject: [PATCH] parse reply events --- src/components/message.vue | 44 ++++++++++++++++++++++++++++++++++--- src/components/timeline.vue | 26 ++++++++++++++++++---- src/views/chat.vue | 2 +- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/components/message.vue b/src/components/message.vue index 1ae10fc..5c43a1c 100644 --- a/src/components/message.vue +++ b/src/components/message.vue @@ -1,18 +1,25 @@ @@ -61,4 +94,9 @@ export default { font-size: 0.7rem; text-align: right; } + .reply{ + border-left: 2px solid #fff; + padding-left: 0.5rem; + margin-bottom: 0.5rem; + } \ No newline at end of file diff --git a/src/components/timeline.vue b/src/components/timeline.vue index 9ae8862..1325daf 100644 --- a/src/components/timeline.vue +++ b/src/components/timeline.vue @@ -30,9 +30,12 @@ :key="event.origin_server_ts" :title="`${group[0].sender} at ${getTime(event.origin_server_ts)}`" > -
{{membershipEvents[event.content.membership]}} @@ -52,6 +55,7 @@ import userThumbnail from "@/components/userThumbnail"; import {matrix} from "@/main"; import splitArray from "@/lib/splitArray"; import {getDate, getTime} from "@/lib/getTimeStrings"; +import sdk from "matrix-js-sdk" export default { name: 'eventGroup', @@ -62,12 +66,25 @@ export default { props: { timeline: Array, user: String, - groupTimeline: Boolean + groupTimeline: Boolean, + roomId: String }, methods: { getUser(userId) { return matrix.client.getUser(userId); }, + getReplyId(event){ + if(!event.content['m.relates_to']) return undefined; + if(!event.content['m.relates_to']['m.in_reply_to']) return undefined; + return event.content['m.relates_to']['m.in_reply_to'].event_id || undefined; + }, + async getReplyEvent(event, callback){ + let replyId = this.getReplyId(event); + if (replyId === undefined) return undefined; + await matrix.client.fetchRoomEvent(this.roomId, replyId).then((res) => { + callback(new sdk.MatrixEvent(res)); + }); + }, splitArray, getDate, getTime @@ -126,6 +143,7 @@ export default { } .username{ margin-left: 1rem; + font-weight: bold; } .event{ .info{ diff --git a/src/views/chat.vue b/src/views/chat.vue index 42f5380..3aa5d05 100644 --- a/src/views/chat.vue +++ b/src/views/chat.vue @@ -4,7 +4,7 @@
{{loadingStatus}}

this room is empty

- +