move showSearchFiled state to view model

This commit is contained in:
Satindar Dhillon 2023-02-16 21:06:47 -08:00
parent b3ddb354ec
commit 0212c31d66
3 changed files with 17 additions and 16 deletions

View file

@ -81,12 +81,12 @@ fun LibraryViewContent(libraryViewModel: LibraryViewModel, modifier: Modifier) {
.fillMaxSize()
.padding(horizontal = 6.dp)
) {
if (searchText.isEmpty()) {
if (!libraryViewModel.showSearchField) {
item {
LibraryFilterBar(libraryViewModel)
}
}
items(if (searchText.isNotEmpty()) searchedCardsData else cardsData) { cardDataWithLabels ->
items(if (libraryViewModel.showSearchField) searchedCardsData else cardsData) { cardDataWithLabels ->
SavedItemCard(
cardData = cardDataWithLabels.cardData,
onClickHandler = {

View file

@ -40,6 +40,7 @@ class LibraryViewModel @Inject constructor(
val appliedSortFilterLiveData = MutableLiveData(SavedItemSortFilter.NEWEST)
var isRefreshing by mutableStateOf(false)
var showSearchField by mutableStateOf(false)
var hasLoadedInitialFilters = false
fun loadInitialFilterValues() {
@ -220,15 +221,16 @@ class LibraryViewModel @Inject constructor(
}
private fun searchQueryString(): String {
var query = "${appliedFilterLiveData.value?.queryString} ${appliedSortFilterLiveData.value?.queryString}"
val searchText = searchTextLiveData.value ?: ""
if (searchText.isNotEmpty()) {
query += " $searchText"
}
Log.d("sefi", "search query: $query")
return query
return searchTextLiveData.value ?: ""
// Unused code for typeahead search
// var query = "${appliedFilterLiveData.value?.queryString} ${appliedSortFilterLiveData.value?.queryString}"
// val searchText = searchTextLiveData.value ?: ""
//
// if (searchText.isNotEmpty()) {
// query += " $searchText"
// }
//
// return query
}
}

View file

@ -31,12 +31,11 @@ fun SearchBar(
libraryViewModel: LibraryViewModel,
onSettingsIconClick: () -> Unit
) {
var showSearchField by remember { mutableStateOf(false) }
val searchText: String by libraryViewModel.searchTextLiveData.observeAsState("")
SmallTopAppBar(
title = {
if (showSearchField) {
if (libraryViewModel.showSearchField) {
SearchField(searchText) { libraryViewModel.updateSearchText(it) }
} else {
Text("Library")
@ -46,18 +45,18 @@ fun SearchBar(
containerColor = MaterialTheme.colorScheme.surfaceVariant
),
actions = {
if (showSearchField) {
if (libraryViewModel.showSearchField) {
Text(
text = "Cancel",
modifier = Modifier
.clickable {
libraryViewModel.updateSearchText("")
showSearchField = false
libraryViewModel.showSearchField = false
}
.padding(horizontal = 6.dp)
)
} else {
IconButton(onClick = { showSearchField = true }) {
IconButton(onClick = { libraryViewModel.showSearchField = true }) {
Icon(
imageVector = Icons.Filled.Search,
contentDescription = null