Various Fixes

This commit is contained in:
Ilya Laktyushin 2021-10-29 01:42:10 +04:00
parent 1c56487ab1
commit 20d8cba4a1
2 changed files with 24 additions and 11 deletions

View File

@ -469,8 +469,12 @@ public final class InviteRequestsSearchContainerNode: SearchDisplayControllerCon
let searchQuery = self.searchQuery.get()
|> mapToSignal { query -> Signal<String?, NoError> in
if let query = query, !query.isEmpty {
return (.complete() |> delay(0.6, queue: Queue.mainQueue()))
|> then(.single(query))
if query.count == 1 {
return .single(" ")
} else {
return (.complete() |> delay(0.6, queue: Queue.mainQueue()))
|> then(.single(query))
}
} else {
return .single(query)
}
@ -481,19 +485,26 @@ public final class InviteRequestsSearchContainerNode: SearchDisplayControllerCon
guard let query = query, !query.isEmpty, let peer = peerViewMainPeer(peerView) else {
return .single(nil)
}
updateActivity(true)
let requestsContext = context.engine.peers.peerInvitationImporters(peerId: peerId, subject: .requests(query: query))
let _ = previousRequestsContext.swap(requestsContext)
let isGroup: Bool
if let channel = peer as? TelegramChannel, case .broadcast = channel.info {
isGroup = false
let signal: Signal<PeerInvitationImportersState, NoError>
if query == " " {
signal = .single(PeerInvitationImportersState.Loading)
} else {
isGroup = true
updateActivity(true)
let requestsContext = context.engine.peers.peerInvitationImporters(peerId: peerId, subject: .requests(query: query))
let _ = previousRequestsContext.swap(requestsContext)
signal = requestsContext.state
}
return combineLatest(requestsContext.state, presentationDataPromise.get(), processedPeerIds.get())
return combineLatest(signal, presentationDataPromise.get(), processedPeerIds.get())
|> mapToSignal { state, presentationData, processedPeerIds -> Signal<[InviteRequestsSearchEntry]?, NoError> in
let isGroup: Bool
if let channel = peer as? TelegramChannel, case .broadcast = channel.info {
isGroup = false
} else {
isGroup = true
}
var entries: [InviteRequestsSearchEntry] = []
var index = 0
if !state.hasLoadedOnce {

View File

@ -663,6 +663,8 @@ public struct PeerInvitationImportersState: Equatable {
}
public static var Empty = PeerInvitationImportersState(importers: [], isLoadingMore: false, hasLoadedOnce: true, canLoadMore: false, count: 0)
public static var Loading = PeerInvitationImportersState(importers: [], isLoadingMore: false, hasLoadedOnce: false, canLoadMore: false, count: 0)
}
final class CachedPeerInvitationImporters: Codable {