Rename isFetchingSearchResults to showSearchLoader

This commit is contained in:
ganfra 2024-01-05 15:54:50 +01:00
parent a0ba83c863
commit 44b6a97c90
14 changed files with 50 additions and 50 deletions

View file

@ -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()
}
},

View file

@ -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)) },

View file

@ -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) {

View file

@ -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,

View file

@ -63,7 +63,7 @@ fun aUserListState() = UserListState(
searchResults = SearchBarResultState.Initial(),
selectedUsers = persistentListOf(),
selectionMode = SelectionMode.Single,
isFetchingSearchResults = false,
showSearchLoader = false,
eventSink = {}
)

View file

@ -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)
}
}