From f28a38d838361279dd12b7f44e0bb3b7dee2f108 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Mon, 11 Sep 2023 16:48:27 +0200 Subject: [PATCH] Add message delegate (callback) in reaction sheet view --- .../Views/Fragments/SheetViewController.swift | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Classes/Swift/Chat/Views/Fragments/SheetViewController.swift b/Classes/Swift/Chat/Views/Fragments/SheetViewController.swift index 40bac7a1c..4d9e625f4 100644 --- a/Classes/Swift/Chat/Views/Fragments/SheetViewController.swift +++ b/Classes/Swift/Chat/Views/Fragments/SheetViewController.swift @@ -36,6 +36,7 @@ final class SheetViewController: UIViewController { private var tabStyle = SlidingTabStyle.fixed private let heightHeader = 40 var chatMessage : ChatMessage + var chatMessageDelegate: ChatMessageDelegate? = nil /// Put your custom argument labels here, not inside the `required init?` init(chatMessageInit: ChatMessage) { @@ -48,11 +49,37 @@ final class SheetViewController: UIViewController { fatalError("init(coder:) has not been implemented") } + override func viewDidDisappear(_ animated: Bool) { + super.viewDidDisappear(animated) + if chatMessageDelegate != nil { + chatMessage.removeDelegate(delegate: chatMessageDelegate!) + } + } + override func viewDidLoad() { super.viewDidLoad() setupUI() + addMessageDelegate() } + func reloadUI() { + items.removeAll() + titles.removeAll() + setupUI() + } + + func addMessageDelegate(){ + chatMessageDelegate = ChatMessageDelegateStub( + onNewMessageReaction: { (message: ChatMessage, messageReaction: ChatMessageReaction) -> Void in + self.reloadUI() + }, + onReactionRemoved: { (message: ChatMessage, address: Address) -> Void in + self.reloadUI() + } + ) + chatMessage.addDelegate(delegate: chatMessageDelegate!) + } + private func setupUI(){ // view view.backgroundColor = VoipTheme.voipBackgroundBWColor.get()