From 9cbe154b8efc18fdff4a815679fb2d36fe6da6ae Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 18 Jul 2024 16:32:18 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../core/ui/components/fields/SearchBar.kt | 49 +++++++++++++++++-- .../managetokens/ui/ManageTokensScreen.kt | 5 +- 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/fields/SearchBar.kt b/core/ui/src/main/java/com/tangem/core/ui/components/fields/SearchBar.kt index cf2abf3f5f..3de373a0e3 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/fields/SearchBar.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/fields/SearchBar.kt @@ -1,13 +1,17 @@ package com.tangem.core.ui.components.fields import android.content.res.Configuration +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.size +import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.* import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusManager import androidx.compose.ui.focus.onFocusChanged @@ -18,6 +22,7 @@ import androidx.compose.ui.platform.SoftwareKeyboardController import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -33,8 +38,9 @@ import com.tangem.core.ui.res.TangemThemePreview fun SearchBar(state: SearchBarUM, modifier: Modifier = Modifier, colors: TextFieldColors = TangemSearchBarColors) { val keyboardController = LocalSoftwareKeyboardController.current val focusManager = LocalFocusManager.current + val interactionSource = remember { MutableInteractionSource() } - TextField( + BasicTextField( modifier = modifier .fillMaxWidth() .heightIn(min = TangemTheme.dimens.size48) @@ -47,6 +53,7 @@ fun SearchBar(state: SearchBarUM, modifier: Modifier = Modifier, colors: TextFie }, value = state.query, onValueChange = state.onQueryChange, + interactionSource = interactionSource, keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Text, imeAction = ImeAction.Search, @@ -59,7 +66,43 @@ fun SearchBar(state: SearchBarUM, modifier: Modifier = Modifier, colors: TextFie ), singleLine = true, maxLines = 1, - textStyle = TangemTheme.typography.body2, + textStyle = TangemTheme.typography.body2.copy( + color = TangemTheme.colors.text.primary1, + ), + decorationBox = @Composable { innerTextField -> + DecorationBox( + state = state, + innerTextField = innerTextField, + interactionSource = interactionSource, + colors = colors, + focusManager = focusManager, + keyboardController = keyboardController, + ) + }, + ) +} + +@Suppress("LongParameterList") +@Composable +@OptIn(ExperimentalMaterial3Api::class) +private fun DecorationBox( + state: SearchBarUM, + innerTextField: @Composable () -> Unit, + interactionSource: MutableInteractionSource, + colors: TextFieldColors, + focusManager: FocusManager, + keyboardController: SoftwareKeyboardController?, +) { + TextFieldDefaults.DecorationBox( + value = state.query, + innerTextField = innerTextField, + enabled = true, + singleLine = true, + visualTransformation = VisualTransformation.None, + interactionSource = interactionSource, + shape = TangemTheme.shapes.roundedCornersXLarge, + colors = colors, + contentPadding = PaddingValues(all = TangemTheme.dimens.spacing12), leadingIcon = { Icon( modifier = Modifier.size(TangemTheme.dimens.size20), @@ -84,8 +127,6 @@ fun SearchBar(state: SearchBarUM, modifier: Modifier = Modifier, colors: TextFie overflow = TextOverflow.Ellipsis, ) }, - shape = TangemTheme.shapes.roundedCornersXLarge, - colors = colors, ) } diff --git a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt index 5a29f66f24..4f9b2f3874 100644 --- a/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt +++ b/features/manage-tokens/impl/src/main/kotlin/com/tangem/features/managetokens/ui/ManageTokensScreen.kt @@ -136,9 +136,10 @@ private fun Currencies(items: ImmutableList, search: SearchBarUM modifier = Modifier .background(TangemTheme.colors.background.primary) .padding( - vertical = TangemTheme.dimens.spacing12, - horizontal = TangemTheme.dimens.spacing16, + top = TangemTheme.dimens.spacing16, + bottom = TangemTheme.dimens.spacing12, ) + .padding(horizontal = TangemTheme.dimens.spacing16) .fillMaxWidth(), ) { SearchBar(state = search)