Don't fire a new search if only the cursor position in the search bar has changed

This commit is contained in:
MM20 2021-09-28 18:10:57 +02:00
parent 5b35317412
commit c2887f4b0a
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -45,12 +45,12 @@ fun SearchBar(
offScreen: Float,
onFocus: () -> Unit = {}
) {
var searchQuery by remember { mutableStateOf(TextFieldValue()) }
var searchQuery by remember { mutableStateOf("") }
val viewModel: SearchViewModel = viewModel()
LaunchedEffect(searchQuery) {
viewModel.search(searchQuery.text)
viewModel.search(searchQuery)
}
val pageTransition = (pagerState.currentPage + pagerState.currentPageOffset).coerceIn(0f, 1f)
@ -101,7 +101,7 @@ fun SearchBar(
if (it.isFocused) onFocus()
}
)
if (searchQuery.text.isEmpty()) {
if (searchQuery.isEmpty()) {
BasicText(
text = stringResource(id = R.string.edit_text_search_hint),
style = textStyle,
@ -113,8 +113,8 @@ fun SearchBar(
Box {
IconButton(
onClick = {
if (searchQuery.text.isNotEmpty()) {
searchQuery = TextFieldValue()
if (searchQuery.isNotEmpty()) {
searchQuery = ""
} else {
showOverflowMenu = true
}
@ -123,7 +123,7 @@ fun SearchBar(
) {
val menuClearIcon = animatedVectorResource(R.drawable.anim_ic_menu_clear)
Icon(
painter = menuClearIcon.painterFor(atEnd = searchQuery.text.isNotEmpty()),
painter = menuClearIcon.painterFor(atEnd = searchQuery.isNotEmpty()),
null
)
}