From 8e91987c310e22afc16ffc08adaca48844abb869 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 8 Jun 2023 15:51:46 -0400 Subject: [PATCH] Refactors search screen to make the SearchTextField @Stable --- .../amethyst/ui/screen/loggedIn/SearchScreen.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt index 46e8b25cd..a96ecb5b0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt @@ -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 + 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(