mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
move showSearchFiled state to view model
This commit is contained in:
parent
b3ddb354ec
commit
0212c31d66
3 changed files with 17 additions and 16 deletions
|
|
@ -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 = {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue