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