Fixes #1950 - Show a loading indicator while searching for people to … (#2158)

* Fixes #1950 - Show a loading indicator while searching for people to invite

* Address PR comments
This commit is contained in:
Stefan Ceriu
2023-11-23 19:56:49 +02:00
committed by GitHub
parent 33d36826a2
commit 07eccbee8c
4 changed files with 21 additions and 9 deletions
@@ -134,6 +134,8 @@ class InviteUsersScreenViewModel: InviteUsersScreenViewModelType, InviteUsersScr
fetchSuggestions()
return
}
state.isSearching = true
fetchUsersTask = Task {
let result = await userDiscoveryService.searchProfiles(with: searchQuery)
guard !Task.isCancelled else { return }
@@ -146,6 +148,8 @@ class InviteUsersScreenViewModel: InviteUsersScreenViewModelType, InviteUsersScr
state.usersSection = .init(type: .suggestions, users: [])
return
}
state.isSearching = true
fetchUsersTask = Task {
let result = await userDiscoveryService.fetchSuggestions()
guard !Task.isCancelled else { return }
@@ -154,6 +158,8 @@ class InviteUsersScreenViewModel: InviteUsersScreenViewModelType, InviteUsersScr
}
private func handleResult(for sectionType: UserDiscoverySectionType, result: Result<[UserProfileProxy], UserDiscoveryErrorType>) {
state.isSearching = false
switch result {
case .success(let users):
state.usersSection = .init(type: sectionType, users: users)