Fix crash in deleteMessage method of ConversationViewModel

This commit is contained in:
Benoit Martins 2025-02-19 15:59:17 +01:00
parent 0c573e6e5c
commit abf294625a

View file

@ -2407,15 +2407,17 @@ class ConversationViewModel: ObservableObject {
}
func deleteMessage() {
if self.displayedConversation != nil && selectedMessage != nil && selectedMessage!.eventModel.eventLog.chatMessage != nil {
let chatRoomTmp = self.displayedConversation!.chatRoom
if let chatMessageTmp = self.selectedMessage!.eventModel.eventLog.chatMessage {
coreContext.doOnCoreQueue { _ in
chatRoomTmp.deleteMessage(message: chatMessageTmp)
if let displayedConversation = self.displayedConversation,
let selectedMessage = self.selectedMessage,
let chatMessage = selectedMessage.eventModel.eventLog.chatMessage {
displayedConversation.chatRoom.deleteMessage(message: chatMessage)
DispatchQueue.main.async {
self.conversationMessagesSection[0].rows.remove(at: self.conversationMessagesSection[0].rows.firstIndex(of: self.selectedMessage!)!)
self.selectedMessage = nil
if let sectionIndex = self.conversationMessagesSection.firstIndex(where: { $0.chatRoomID == displayedConversation.id }),
let rowIndex = self.conversationMessagesSection[sectionIndex].rows.firstIndex(of: selectedMessage) {
self.conversationMessagesSection[sectionIndex].rows.remove(at: rowIndex)
}
self.selectedMessage = nil
}
}
}