From 36f635f6f0393828b429205e8be66780fbc7ef33 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:20:56 +0100 Subject: [PATCH] ios: prevent messages from being sent twice (#1120) --- .../Shared/Views/Chat/ComposeMessage/ComposeView.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift index eb01202043..2e9a8e0123 100644 --- a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift +++ b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift @@ -288,20 +288,23 @@ struct ComposeView: View { case let .editingItem(chatItem: ei): if let oldMsgContent = ei.content.msgContent { do { + let mc = updateMsgContent(oldMsgContent) + await MainActor.run { clearState() } let chatItem = try await apiUpdateChatItem( type: chat.chatInfo.chatType, id: chat.chatInfo.apiId, itemId: ei.id, - msg: updateMsgContent(oldMsgContent) + msg: mc ) DispatchQueue.main.async { let _ = self.chatModel.upsertChatItem(self.chat.chatInfo, chatItem) } } catch { - clearState() logger.error("ChatView.sendMessage error: \(error.localizedDescription)") AlertManager.shared.showAlertMsg(title: "Error updating message", message: "Error: \(responseError(error))") } + } else { + await MainActor.run { clearState() } } default: var mc: MsgContent? = nil @@ -332,6 +335,7 @@ struct ComposeView: View { default: quotedItemId = nil } + await MainActor.run { clearState() } if let mc = mc, let chatItem = await apiSendMessage( type: chat.chatInfo.chatType, @@ -343,7 +347,6 @@ struct ComposeView: View { chatModel.addChatItem(chat.chatInfo, chatItem) } } - clearState() } }