Refactors search screen to make the SearchTextField @Stable

pull/449/head
Vitor Pamplona 2023-06-08 15:51:46 -04:00
rodzic 1c3b34a9c7
commit 8e91987c31
1 zmienionych plików z 8 dodań i 7 usunięć

Wyświetl plik

@ -224,6 +224,7 @@ private fun SearchBar(
accountViewModel: AccountViewModel,
nav: (String) -> Unit
) {
val scope = rememberCoroutineScope()
val listState = rememberLazyListState()
// Create a channel for processing search queries.
@ -270,7 +271,11 @@ private fun SearchBar(
}
// LAST ROW
SearchTextField(searchBarViewModel, searchTextChanges)
SearchTextField(searchBarViewModel) {
scope.launch(Dispatchers.IO) {
searchTextChanges.trySend(it)
}
}
DisplaySearchResults(listState, searchBarViewModel, nav, accountViewModel)
}
@ -278,10 +283,8 @@ private fun SearchBar(
@Composable
private fun SearchTextField(
searchBarViewModel: SearchBarViewModel,
searchTextChanges: kotlinx.coroutines.channels.Channel<String>
onTextChanges: (String) -> Unit
) {
val scope = rememberCoroutineScope()
Row(
modifier = Modifier
.padding(10.dp)
@ -293,9 +296,7 @@ private fun SearchTextField(
value = searchBarViewModel.searchValue,
onValueChange = {
searchBarViewModel.updateSearchValue(it)
scope.launch(Dispatchers.IO) {
searchTextChanges.trySend(it)
}
onTextChanges(it)
},
shape = RoundedCornerShape(25.dp),
keyboardOptions = KeyboardOptions.Default.copy(