Refactor SearchBarResultState.Initial and NoResultsFound to data objects

This commit is contained in:
ganfra
2026-07-23 16:15:02 +02:00
parent 075cca2d21
commit 9d427077f0
15 changed files with 38 additions and 54 deletions
@@ -67,19 +67,19 @@ class DefaultUserListPresenter(
val selectedUsers by userListDataStore.selectedUsers.collectAsState(emptyList())
val queryState = rememberTextFieldState()
var searchResults: SearchBarResultState<ImmutableList<UserSearchResult>> by remember {
mutableStateOf(SearchBarResultState.Initial())
mutableStateOf(SearchBarResultState.Initial)
}
var showSearchLoader by remember { mutableStateOf(false) }
val searchQuery = queryState.text.toString()
LaunchedEffect(searchQuery) {
searchResults = SearchBarResultState.Initial()
searchResults = SearchBarResultState.Initial
showSearchLoader = false
userRepository.search(searchQuery).onEach { state ->
showSearchLoader = state.isSearching
searchResults = when {
state.results.isEmpty() && state.isSearching -> SearchBarResultState.Initial()
state.results.isEmpty() && !state.isSearching -> SearchBarResultState.NoResultsFound()
state.results.isEmpty() && state.isSearching -> SearchBarResultState.Initial
state.results.isEmpty() && !state.isSearching -> SearchBarResultState.NoResultsFound
else -> SearchBarResultState.Results(state.results.toImmutableList())
}
}.launchIn(this)
@@ -47,7 +47,7 @@ open class UserListStateProvider : PreviewParameterProvider<UserListState> {
aUserListState(
isSearchActive = true,
searchQuery = "something-with-no-results",
searchResults = SearchBarResultState.NoResultsFound()
searchResults = SearchBarResultState.NoResultsFound
),
aUserListState(
isSearchActive = true,
@@ -63,7 +63,7 @@ open class UserListStateProvider : PreviewParameterProvider<UserListState> {
fun aUserListState(
searchQuery: String = "",
isSearchActive: Boolean = false,
searchResults: SearchBarResultState<ImmutableList<UserSearchResult>> = SearchBarResultState.Initial(),
searchResults: SearchBarResultState<ImmutableList<UserSearchResult>> = SearchBarResultState.Initial,
selectedUsers: List<MatrixUser> = emptyList(),
showSearchLoader: Boolean = false,
selectionMode: SelectionMode = SelectionMode.Single,