From 7ddc2acb02aaa4c5d4bd4b3bd27903a299208d0c Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Wed, 9 Jul 2025 07:37:05 +0200 Subject: [PATCH 01/24] feat: add message id as data field of Message component --- components/Message.vue | 7 ++++--- components/MessageArea.vue | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/components/Message.vue b/components/Message.vue index 5cd7773..188960a 100644 --- a/components/Message.vue +++ b/components/Message.vue @@ -1,5 +1,5 @@ \ No newline at end of file From 2ff892b0da73a9d0e1ad5522e2dece2f74c7a16f Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Fri, 11 Jul 2025 03:31:25 +0200 Subject: [PATCH 18/24] feat: add util to create MessageReply instance --- utils/replyToMessage.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/utils/replyToMessage.ts b/utils/replyToMessage.ts index 03253d2..bbb453b 100644 --- a/utils/replyToMessage.ts +++ b/utils/replyToMessage.ts @@ -1,5 +1,14 @@ +import { render } from "vue"; +import MessageReply from "~/components/MessageReply.vue"; import type { MessageProps } from "~/types/props"; export default (element: HTMLDivElement, props: MessageProps) => { console.log("element:", element); + const messageBox = document.getElementById("message-box") as HTMLDivElement; + if (messageBox) { + const div = document.createElement("div"); + const messageReply = h(MessageReply, { author: props.author?.display_name || props.author!.username, text: props.text || "", id: props.message.uuid, replyId: props.replyMessage?.uuid || element.dataset.messageId!, maxWidth: "full" }); + messageBox.prepend(div); + render(messageReply, div); + } } From a8ee8122ee0f7d03a0e3abc65a9595d041684d56 Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Fri, 11 Jul 2025 03:33:24 +0200 Subject: [PATCH 19/24] feat: implement message replies --- components/Message.vue | 27 ++++++++++++++++++++++++--- components/MessageArea.vue | 29 ++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/components/Message.vue b/components/Message.vue index d3d4086..d86f0ad 100644 --- a/components/Message.vue +++ b/components/Message.vue @@ -1,5 +1,9 @@