@@ -8,7 +8,8 @@ import SwiftUI
88import UIKit
99
1010/// View model for the `ChatChannelListView`.
11- open class ChatChannelListViewModel : ObservableObject , ChatChannelListControllerDelegate {
11+ open class ChatChannelListViewModel : ObservableObject , ChatChannelListControllerDelegate , ChatMessageSearchControllerDelegate {
12+
1213 /// Context provided dependencies.
1314 @Injected ( \. chatClient) private var chatClient : ChatClient
1415 @Injected ( \. images) private var images : Images
@@ -103,7 +104,9 @@ open class ChatChannelListViewModel: ObservableObject, ChatChannelListController
103104
104105 @Published public var searchText = " " {
105106 didSet {
106- handleSearchTextChange ( )
107+ if searchText != oldValue {
108+ handleSearchTextChange ( )
109+ }
107110 }
108111 }
109112
@@ -244,6 +247,12 @@ open class ChatChannelListViewModel: ObservableObject, ChatChannelListController
244247 selectedChannel = channels. first? . channelSelectionInfo
245248 }
246249 }
250+
251+ // MARK: - ChatMessageSearchControllerDelegate
252+
253+ public func controller( _ controller: ChatMessageSearchController , didChangeMessages changes: [ ListChange < ChatMessage > ] ) {
254+ updateSearchResults ( )
255+ }
247256
248257 // MARK: - private
249258
@@ -324,6 +333,7 @@ open class ChatChannelListViewModel: ObservableObject, ChatChannelListController
324333 if !searchText. isEmpty {
325334 guard let userId = chatClient. currentUserId else { return }
326335 messageSearchController = chatClient. messageSearchController ( )
336+ messageSearchController? . delegate = self
327337 let query = MessageSearchQuery (
328338 channelFilter: . containMembers( userIds: [ userId] ) ,
329339 messageFilter: . autocomplete( . text, text: searchText)
@@ -334,6 +344,7 @@ open class ChatChannelListViewModel: ObservableObject, ChatChannelListController
334344 self ? . updateSearchResults ( )
335345 } )
336346 } else {
347+ messageSearchController? . delegate = nil
337348 messageSearchController = nil
338349 searchResults = [ ]
339350 updateChannels ( )
0 commit comments