From 728a97389dfbb6d8174a93e4f3262e2a420b3cb3 Mon Sep 17 00:00:00 2001 From: Anthony Laibe Date: Tue, 3 Aug 2021 11:26:43 +0200 Subject: [PATCH] fix(@desktop/profile): remove chat when blocking contact fixes #2708 When blocking a contact, if there is a chat open, close it --- src/app/chat/event_handling.nim | 7 ++++++- src/status/contacts.nim | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app/chat/event_handling.nim b/src/app/chat/event_handling.nim index e64a04344..6915c8cad 100644 --- a/src/app/chat/event_handling.nim +++ b/src/app/chat/event_handling.nim @@ -2,9 +2,10 @@ import # std libs strutils import # status-desktop libs - ../../status/chat/chat as status_chat, ./views/communities, + ../../status/chat/chat as status_chat, ../../status/tasks/marathon, ../../status/tasks/marathon/mailserver/worker, + ./views/communities, ./views/messages proc handleChatEvents(self: ChatController) = @@ -27,6 +28,10 @@ proc handleChatEvents(self: ChatController) = self.view.pushActivityCenterNotifications(notifications) self.view.communities.updateNotifications(notifications) + self.status.events.on("contactBlocked") do(e: Args): + var evArgs = ContactBlockedArgs(e) + self.view.removeChat(evArgs.contact.address) + self.status.events.on("contactUpdate") do(e: Args): var evArgs = ContactUpdateArgs(e) self.view.updateUsernames(evArgs.contacts) diff --git a/src/status/contacts.nim b/src/status/contacts.nim index 744bd3e55..329850eb1 100644 --- a/src/status/contacts.nim +++ b/src/status/contacts.nim @@ -15,6 +15,9 @@ type ContactUpdateArgs* = ref object of Args contacts*: seq[Profile] + ContactBlockedArgs* = ref object of Args + contact*: Profile + proc newContactModel*(events: EventEmitter): ContactModel = result = ContactModel() result.events = events @@ -35,7 +38,7 @@ proc blockContact*(self: ContactModel, id: string): string = if (index > -1): contact.systemTags.delete(index) discard status_contacts.blockContact(contact) - self.events.emit("contactBlocked", Args()) + self.events.emit("contactBlocked", ContactBlockedArgs(contact: contact)) proc unblockContact*(self: ContactModel, id: string): string =