From 5bae8306556eb71a14f98849c63b1896804007f7 Mon Sep 17 00:00:00 2001 From: Nebojsa Vuksic Date: Fri, 1 Aug 2025 11:21:03 +0200 Subject: [PATCH] Cleanup SearchBarWithAutoCompletion function parameters --- .../components/SearchBarWithAutoCompletion.kt | 16 +++++++--------- .../ui/components/SearchToolbarMenu.kt | 4 ++-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/org/jetbrains/plugins/template/components/SearchBarWithAutoCompletion.kt b/src/main/kotlin/org/jetbrains/plugins/template/components/SearchBarWithAutoCompletion.kt index a137c73..b623655 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/components/SearchBarWithAutoCompletion.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/components/SearchBarWithAutoCompletion.kt @@ -5,7 +5,6 @@ import androidx.compose.foundation.interaction.HoverInteraction import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.input.TextFieldState -import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.foundation.text.input.setTextAndPlaceCursorAtEnd import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -22,7 +21,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.PopupProperties import androidx.compose.ui.zIndex import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.onEach import org.jetbrains.jewel.foundation.ExperimentalJewelApi import org.jetbrains.jewel.ui.component.Icon import org.jetbrains.jewel.ui.component.PopupMenu @@ -38,10 +36,10 @@ import org.jetbrains.plugins.template.weatherApp.services.SearchAutoCompletionIt internal fun SearchBarWithAutoCompletion( modifier: Modifier = Modifier, searchAutoCompletionItemProvider: SearchAutoCompletionItemProvider, - textFieldState: TextFieldState = rememberTextFieldState(""), + textFieldState: TextFieldState, searchFieldPlaceholder: String = "Type a place name...", - onInputCleared: () -> Unit = {}, - onItemAutocomplete: (T) -> Unit = {}, + onClear: () -> Unit = {}, + onSelectCompletion: (T) -> Unit = {}, ) where T : Searchable, T : PreviewableItem { val focusRequester = remember { FocusRequester() } @@ -67,7 +65,7 @@ internal fun SearchBarWithAutoCompletion( .fillMaxWidth() .handlePopupCompletionKeyEvents(popupController) { item -> textFieldState.setTextAndPlaceCursorAtEnd(item.label) - onItemAutocomplete(item) + onSelectCompletion(item) } .focusRequester(focusRequester), placeholder = { Text(searchFieldPlaceholder) }, @@ -77,7 +75,7 @@ internal fun SearchBarWithAutoCompletion( trailingIcon = { if (textFieldState.text.isNotBlank()) { CloseIconButton { - onInputCleared() + onClear() textFieldState.setTextAndPlaceCursorAtEnd("") } } @@ -101,9 +99,9 @@ internal fun SearchBarWithAutoCompletion( ) { popupController.filteredItems.forEach { item -> selectableItem( - popupController.isItemSelected(item), + popupController. isItemSelected(item), onClick = { - onItemAutocomplete(item) + onSelectCompletion(item) popupController.onItemAutocompleteConfirmed() textFieldState.setTextAndPlaceCursorAtEnd(item.label) }, diff --git a/src/main/kotlin/org/jetbrains/plugins/template/weatherApp/ui/components/SearchToolbarMenu.kt b/src/main/kotlin/org/jetbrains/plugins/template/weatherApp/ui/components/SearchToolbarMenu.kt index 54c805f..1cfac4b 100644 --- a/src/main/kotlin/org/jetbrains/plugins/template/weatherApp/ui/components/SearchToolbarMenu.kt +++ b/src/main/kotlin/org/jetbrains/plugins/template/weatherApp/ui/components/SearchToolbarMenu.kt @@ -70,11 +70,11 @@ internal fun SearchToolbarMenu( .align(Alignment.CenterVertically), searchAutoCompletionItemProvider = searchAutoCompletionItemProvider, textFieldState = searchTextFieldState, - onInputCleared = { + onClear = { isConfirmButtonVisible.value = false previewItem.value = null }, - onItemAutocomplete = { autocompletedItem -> + onSelectCompletion = { autocompletedItem -> isConfirmButtonVisible.value = true previewItem.value = autocompletedItem onSearchPerformed(autocompletedItem)