fix outbox, add indicator for message status

This commit is contained in:
marlon-erler
2024-07-21 14:15:26 +02:00
parent ca8f1d3348
commit cb243bca62
8 changed files with 160 additions and 28 deletions
+13 -5
View File
@@ -63,6 +63,7 @@ export default class ChatViewModel {
// view
open = (): void => {
this.chatListViewModel.openChat(this);
this.restoreMessages();
};
close = (): void => {
@@ -81,6 +82,7 @@ export default class ChatViewModel {
this.chatMessageViewModels.value.get(chatMessage.id);
if (existingChatMessageViewModel != undefined) {
existingChatMessageViewModel.body.value = chatMessage.body;
existingChatMessageViewModel.status.value = chatMessage.status;
} else {
this.chatMessageViewModels.set(chatMessage.id, chatMessageModel);
}
@@ -131,6 +133,8 @@ export default class ChatViewModel {
// messaging
sendMessage = (): void => {
if (this.cannotSendMessage.value == true) return;
this.sendMessageFromBody(this.composingMessage.value);
this.composingMessage.value = "";
};
@@ -142,7 +146,9 @@ export default class ChatViewModel {
decryptMessage = async (
messageViewModel: ChatMessageViewModel
): Promise<void> => {
await this.chatModel.decryptMessage(messageViewModel.chatMessage);
const chatMessage: ChatMessage = messageViewModel.chatMessage;
await this.chatModel.decryptMessage(chatMessage);
this.chatModel.addMessage(chatMessage);
messageViewModel.loadData();
};
@@ -168,6 +174,12 @@ export default class ChatViewModel {
}
};
restoreMessages = (): void => {
for (const chatMessage of this.chatModel.messages) {
this.addChatMessage(chatMessage);
}
}
// init
constructor(
chatModel: ChatModel,
@@ -202,10 +214,6 @@ export default class ChatViewModel {
this.restorePageSelection();
this.updateIndex();
for (const chatMessage of chatModel.messages) {
this.addChatMessage(chatMessage);
}
// guards
this.cannotSendMessage = React.createProxyState(
[this.settingsViewModel.username, this.composingMessage],