From e0b3a8568125f8fe7d0ffb4f8118b4c1d1fade2c Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Tue, 14 Apr 2026 11:28:40 +0000 Subject: [PATCH] prepare backend for inline replies --- dist/index.js | 10 ++++++---- src/Model/Chat/chatModel.ts | 4 +++- src/ViewModel/Pages/messagePageViewModel.ts | 6 ++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/dist/index.js b/dist/index.js index 563e46eb..25a6349c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1312,7 +1312,7 @@ const combinedChannel = allChannels.join("/"); return [senderName, combinedChannel]; }; - this.sendMessage = async (body, fileContent) => { + this.sendMessage = async (body, replyId, fileContent) => { const nameAndChannel = this.getNameAndChannel(); if (nameAndChannel == false) return; const [senderName, combinedChannel] = nameAndChannel; @@ -1349,7 +1349,7 @@ content, isDeleting ); - this.sendMessage("", reaction); + this.sendMessage("", void 0, reaction); this.handleReaction(reaction); }; this.subscribe = () => { @@ -2257,7 +2257,7 @@ this.connectionModel = connectionModel2; this.chatListModel = chatListModel2; this.fileTransferModel = fileTransferModel2; - this.BUILD = "Build 26.04.14.B"; + this.BUILD = "Build 26.04.14.C"; // CONTEXT this.contextStack = /* @__PURE__ */ new Map(); this.closeContext = (contextId) => { @@ -2958,6 +2958,7 @@ this.filteredMessageViewModels = new ListState(); this.isFilterModalOpen = new State(false); this.reactionFilter = new State(void 0); + this.replyingMessageId = new State(void 0); this.composingMessage = new State(""); // methods this.sendMessage = () => { @@ -2966,7 +2967,8 @@ this.composingMessage.value = ""; }; this.sendMessageFromBody = (body) => { - this.chatViewModel.chatModel.sendMessage(body); + this.chatViewModel.chatModel.sendMessage(body, this.replyingMessageId.value); + this.replyingMessageId.value = void 0; }; this.decryptMessage = async (messageViewModel) => { const chatMessage = messageViewModel.chatMessage; diff --git a/src/Model/Chat/chatModel.ts b/src/Model/Chat/chatModel.ts index aae26978..627b9048 100644 --- a/src/Model/Chat/chatModel.ts +++ b/src/Model/Chat/chatModel.ts @@ -180,6 +180,7 @@ export default class ChatModel { sendMessage = async ( body: string, + replyId?: string, fileContent?: FileContent, ): Promise => { const nameAndChannel = this.getNameAndChannel(); @@ -227,7 +228,7 @@ export default class ChatModel { content, isDeleting, ); - this.sendMessage("", reaction); + this.sendMessage("", undefined, reaction); this.handleReaction(reaction); }; @@ -466,6 +467,7 @@ export interface ChatMessage extends ValidObject { readonly sender: string; body: string; readonly dateSent: string; + readonly inlineReplyId?: string; status: ChatMessageStatuses; diff --git a/src/ViewModel/Pages/messagePageViewModel.ts b/src/ViewModel/Pages/messagePageViewModel.ts index fc43c915..f510b600 100644 --- a/src/ViewModel/Pages/messagePageViewModel.ts +++ b/src/ViewModel/Pages/messagePageViewModel.ts @@ -23,7 +23,8 @@ export default class MessagePageViewModel extends Context { reactionFilter = new React.State(undefined); isFilterActive: React.State; - composingMessage: React.State = new React.State(""); + replyingMessageId = new React.State(undefined) + composingMessage = new React.State(""); // guards cannotSendMessage: React.State; @@ -37,7 +38,8 @@ export default class MessagePageViewModel extends Context { }; sendMessageFromBody = (body: string): void => { - this.chatViewModel.chatModel.sendMessage(body); + this.chatViewModel.chatModel.sendMessage(body, this.replyingMessageId.value); + this.replyingMessageId.value = undefined; }; decryptMessage = async (