prepare backend for inline replies

This commit is contained in:
marlon-erler
2026-04-14 11:28:43 +00:00
parent 311e6770c3
commit e0b3a85681
3 changed files with 13 additions and 7 deletions
+6 -4
View File
@@ -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;
+3 -1
View File
@@ -180,6 +180,7 @@ export default class ChatModel {
sendMessage = async (
body: string,
replyId?: string,
fileContent?: FileContent<string>,
): Promise<boolean> => {
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;
+4 -2
View File
@@ -23,7 +23,8 @@ export default class MessagePageViewModel extends Context {
reactionFilter = new React.State<ReactionSymbols | undefined>(undefined);
isFilterActive: React.State<boolean>;
composingMessage: React.State<string> = new React.State("");
replyingMessageId = new React.State<string|undefined>(undefined)
composingMessage = new React.State<string>("");
// guards
cannotSendMessage: React.State<boolean>;
@@ -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 (