Rename isFetchingSearchResults to showSearchLoader
This commit is contained in:
parent
a0ba83c863
commit
44b6a97c90
14 changed files with 50 additions and 50 deletions
|
|
@ -50,7 +50,7 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
fun SearchUserBar(
|
||||
query: String,
|
||||
state: SearchBarResultState<ImmutableList<UserSearchResult>>,
|
||||
isSearching: Boolean,
|
||||
showLoader: Boolean,
|
||||
selectedUsers: ImmutableList<MatrixUser>,
|
||||
active: Boolean,
|
||||
isMultiSelectionEnabled: Boolean,
|
||||
|
|
@ -102,7 +102,7 @@ fun SearchUserBar(
|
|||
}
|
||||
},
|
||||
contentSuffix = {
|
||||
if (isSearching) {
|
||||
if (showLoader) {
|
||||
AsyncLoading()
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ fun UserListView(
|
|||
state = state.searchResults,
|
||||
selectedUsers = state.selectedUsers,
|
||||
active = state.isSearchActive,
|
||||
isSearching = state.isFetchingSearchResults,
|
||||
showLoader = state.showSearchLoader,
|
||||
isMultiSelectionEnabled = state.isMultiSelectionEnabled,
|
||||
showBackButton = showBackButton,
|
||||
onActiveChanged = { state.eventSink(UserListEvents.OnSearchActiveChanged(it)) },
|
||||
|
|
|
|||
|
|
@ -61,16 +61,16 @@ class DefaultUserListPresenter @AssistedInject constructor(
|
|||
var searchResults: SearchBarResultState<ImmutableList<UserSearchResult>> by remember {
|
||||
mutableStateOf(SearchBarResultState.Initial())
|
||||
}
|
||||
var isFetchingSearchResults by remember { mutableStateOf(false) }
|
||||
var showSearchLoader by remember { mutableStateOf(false) }
|
||||
|
||||
LaunchedEffect(searchQuery) {
|
||||
searchResults = SearchBarResultState.Initial()
|
||||
isFetchingSearchResults = false
|
||||
showSearchLoader = false
|
||||
userRepository.search(searchQuery).onEach { state ->
|
||||
isFetchingSearchResults = state.isFetchingSearchResults
|
||||
showSearchLoader = state.isSearching
|
||||
searchResults = when {
|
||||
state.results.isEmpty() && state.isFetchingSearchResults -> SearchBarResultState.Initial()
|
||||
state.results.isEmpty() && !state.isFetchingSearchResults -> SearchBarResultState.NoResultsFound()
|
||||
state.results.isEmpty() && state.isSearching -> SearchBarResultState.Initial()
|
||||
state.results.isEmpty() && !state.isSearching -> SearchBarResultState.NoResultsFound()
|
||||
else -> SearchBarResultState.Results(state.results.toImmutableList())
|
||||
}
|
||||
}.launchIn(this)
|
||||
|
|
@ -81,7 +81,7 @@ class DefaultUserListPresenter @AssistedInject constructor(
|
|||
searchResults = searchResults,
|
||||
selectedUsers = selectedUsers.toImmutableList(),
|
||||
isSearchActive = isSearchActive,
|
||||
isFetchingSearchResults = isFetchingSearchResults,
|
||||
showSearchLoader = showSearchLoader,
|
||||
selectionMode = args.selectionMode,
|
||||
eventSink = { event ->
|
||||
when (event) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
data class UserListState(
|
||||
val searchQuery: String,
|
||||
val searchResults: SearchBarResultState<ImmutableList<UserSearchResult>>,
|
||||
val isFetchingSearchResults: Boolean,
|
||||
val showSearchLoader: Boolean,
|
||||
val selectedUsers: ImmutableList<MatrixUser>,
|
||||
val isSearchActive: Boolean,
|
||||
val selectionMode: SelectionMode,
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ fun aUserListState() = UserListState(
|
|||
searchResults = SearchBarResultState.Initial(),
|
||||
selectedUsers = persistentListOf(),
|
||||
selectionMode = SelectionMode.Single,
|
||||
isFetchingSearchResults = false,
|
||||
showSearchLoader = false,
|
||||
eventSink = {}
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ class DefaultUserListPresenterTests {
|
|||
// When the user repository emits a result, it's copied to the state
|
||||
val result = UserSearchResultState(
|
||||
results = listOf(UserSearchResult(aMatrixUser())),
|
||||
isFetchingSearchResults = false,
|
||||
isSearching = false,
|
||||
)
|
||||
userRepository.emitState(result)
|
||||
awaitItem().also { state ->
|
||||
|
|
@ -148,12 +148,12 @@ class DefaultUserListPresenterTests {
|
|||
persistentListOf(UserSearchResult(aMatrixUser()))
|
||||
)
|
||||
)
|
||||
assertThat(state.isFetchingSearchResults).isFalse()
|
||||
assertThat(state.showSearchLoader).isFalse()
|
||||
}
|
||||
// When the user repository emits another result, it replaces the previous value
|
||||
val newResult = UserSearchResultState(
|
||||
results = aMatrixUserList().map { UserSearchResult(it) },
|
||||
isFetchingSearchResults = false,
|
||||
isSearching = false,
|
||||
)
|
||||
userRepository.emitState(newResult)
|
||||
awaitItem().also { state ->
|
||||
|
|
@ -162,7 +162,7 @@ class DefaultUserListPresenterTests {
|
|||
aMatrixUserList().map { UserSearchResult(it) }
|
||||
)
|
||||
)
|
||||
assertThat(state.isFetchingSearchResults).isFalse()
|
||||
assertThat(state.showSearchLoader).isFalse()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -189,7 +189,7 @@ class DefaultUserListPresenterTests {
|
|||
skipItems(2)
|
||||
|
||||
// When the results list is empty, the state is set to NoResults
|
||||
userRepository.emitState(UserSearchResultState(results = emptyList(), isFetchingSearchResults = false))
|
||||
userRepository.emitState(UserSearchResultState(results = emptyList(), isSearching = false))
|
||||
assertThat(awaitItem().searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue