Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-06 17:09:04 +07:00
parent fd3d95097f
commit f6fad0e6d1
24 changed files with 870 additions and 25 deletions

View file

@ -120,6 +120,7 @@
<string name="common_add_token">Token hinzufügen</string>
<string name="common_all">Alle</string>
<string name="common_allow">Erlauben</string>
<string name="common_amount">Betrag</string>
<string name="common_analytics">Analysen</string>
<string name="common_apply">Anwenden</string>
<string name="common_approval">Genehmigung</string>
@ -165,6 +166,7 @@
<string name="common_disabled">Deaktiviert</string>
<string name="common_disconnect">Trennen</string>
<string name="common_done">Erledigt</string>
<string name="common_edit">Bearbeiten</string>
<string name="common_enable">Aktivieren</string>
<string name="common_enabled">Aktiviert</string>
<string name="common_error">Fehler</string>

View file

@ -109,6 +109,7 @@
<string name="common_add_token">Agregar token</string>
<string name="common_all">Todos</string>
<string name="common_allow">Autorizar</string>
<string name="common_amount">Montante</string>
<string name="common_analytics">Analítica</string>
<string name="common_apply">Aplicar</string>
<string name="common_approval">Aprobación</string>
@ -153,6 +154,7 @@
<string name="common_disabled">Desactivado</string>
<string name="common_disconnect">Desconectar</string>
<string name="common_done">Listo</string>
<string name="common_edit">Editar</string>
<string name="common_enable">Activar</string>
<string name="common_enabled">Activado</string>
<string name="common_error">Error</string>

View file

@ -99,6 +99,7 @@
<string name="common_add_token">Ajouter un jeton</string>
<string name="common_all">Tous</string>
<string name="common_allow">Permettre</string>
<string name="common_amount">Montant</string>
<string name="common_analytics">Analytique</string>
<string name="common_apply">Appliquer</string>
<string name="common_approval">Approbation</string>
@ -140,6 +141,7 @@
<string name="common_disabled">Désactivé</string>
<string name="common_disconnect">Se déconnecter</string>
<string name="common_done">Exécuté</string>
<string name="common_edit">Modifier</string>
<string name="common_enable">Activer</string>
<string name="common_enabled">Activé</string>
<string name="common_error">Erreur</string>

View file

@ -5,6 +5,7 @@
<string name="alert_unsupported_card">Questa carta non è progettata per funzionare con Tangem</string>
<string name="cardano_low_ada">L\'importo inviato e il cambio non può essere inferiore a 1 ADA</string>
<string name="common_accept">Accetta</string>
<string name="common_amount">Importo</string>
<string name="common_balance">Saldo: %s</string>
<string name="common_build_tx_error">Impossibile creare la transazione</string>
<string name="common_camera_denied_alert_message">Non hai fornito l\'accesso alla tua videocamera, modifica le tue impostazioni sulla privacy</string>

View file

@ -12,6 +12,18 @@
<string name="access_code_create_description">ウォレットのロックを解除するには、 %s桁のアクセスコードを設定します。</string>
<string name="access_code_create_title">アクセスコードの作成</string>
<string name="access_code_navtitle">アクセスコード</string>
<string name="account_form_create_button">アカウントを追加</string>
<string name="account_form_edit_button">保存</string>
<string name="account_form_name">アカウント名</string>
<string name="account_form_placeholder_edit_account">アカウント</string>
<string name="account_form_placeholder_new_account">新しいアカウント</string>
<string name="account_form_title_create">アカウントを追加</string>
<string name="account_form_title_edit">アカウントを編集</string>
<string name="account_unsaved_dialog_action_first">編集を続ける</string>
<string name="account_unsaved_dialog_action_second">破棄</string>
<string name="account_unsaved_dialog_message_create">新しいアカウントを破棄してもよろしいですか?</string>
<string name="account_unsaved_dialog_message_edit">編集内容を破棄してもよろしいですか?</string>
<string name="account_unsaved_dialog_title">保存されていない変更</string>
<string name="action_buttons_buy_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して買付できるようにします。</string>
<string name="action_buttons_sell_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して売却できるようにします。</string>
<string name="action_buttons_sell_navigation_bar_title">売却</string>
@ -127,6 +139,7 @@
<string name="common_add_token">トークンを追加</string>
<string name="common_all">すべて</string>
<string name="common_allow">許可する</string>
<string name="common_amount">金額</string>
<string name="common_analytics">アナリティクス</string>
<string name="common_apply">適用する</string>
<string name="common_approval">承認</string>
@ -170,6 +183,7 @@
<string name="common_disabled">無効</string>
<string name="common_disconnect">切断</string>
<string name="common_done">完了</string>
<string name="common_edit">編集</string>
<string name="common_enable">有効にする</string>
<string name="common_enabled">有効</string>
<string name="common_error">エラー</string>
@ -1110,6 +1124,7 @@
<string name="swapping_fee_estimation_error_text">手数料見積りエラーです。サポートにフィードバックをお送りください。</string>
<string name="swapping_from_title">スワップする</string>
<string name="swapping_high_price_impact_description">選択したトークンをこの量を交換すると、価格に大きな影響が生じ、結果が減少します。</string>
<string name="swapping_high_price_impact_title">価格への影響が甚大です</string>
<string name="swapping_insufficient_funds">残高不足</string>
<string name="swapping_permission_header">許可を与える</string>
<string name="swapping_swap_action">スワップ</string>
@ -1285,6 +1300,7 @@
<string name="wallet_settings_access_code_description">このウォレットを保護するためのシークレットコードです。ログインと署名に使用されます。</string>
<string name="wallet_settings_access_code_title">アクセスコードの設定 / 変更</string>
<string name="wallet_settings_push_notifications_description">ウォレットの受信取引とTangemの更新について通知を受け取る。</string>
<string name="wallet_settings_push_notifications_huawei_warning">現在、Huaweiデバイスではプッシュ通知が機能しない可能性があります。現在、解決策の検討に取り組んでおり、今後のアップデートで修正をリリースする予定です。ご理解のほどよろしくお願いいたします。</string>
<string name="wallet_settings_push_notifications_title">取引通知</string>
<string name="wallet_settings_title">ウォレット設定</string>
<string name="wallet_title">Tangem</string>
@ -1426,15 +1442,19 @@
<string name="wc_disconnect_all_alert_title">すべてのdAppを接続解除する</string>
<string name="wc_estimated_wallet_changes">ウォレットの変更の予測</string>
<string name="wc_estimated_wallet_changes_not_simulated">取引をシミュレーションできませんでした。注意して続行してください。</string>
<string name="wc_estimation_is_not_supported">%sでは見積もりはサポートされていません</string>
<string name="wc_fee_suggested">%sによる提案</string>
<string name="wc_malicious_transaction">悪意のある取引</string>
<string name="wc_missing_required_network_description">このウォレットのポートフォリオに%sネットワークを追加します</string>
<string name="wc_missing_required_network_title">ウォレットに必要なネットワークはありません</string>
<string name="wc_new_connection">新しい接続</string>
<string name="wc_no_sessions_desc">ウォレットを別のdAppに接続する</string>
<string name="wc_no_sessions_title">セッションなし</string>
<string name="wc_no_wallet_changes_detected">ウォレットの変更は検出されませんでした</string>
<string name="wc_notification_security_risk_subtitle">このドメインは複数のセキュリティプロバイダーから安全でないとの警告を受けています。あなたの資産を守るため、直ちにアクセスを中止してください。</string>
<string name="wc_notification_security_risk_title">既知のセキュリティリスク</string>
<string name="wc_request_from">リクエスト元</string>
<string name="wc_send_anyway">とにかく送金</string>
<string name="wc_signature_type">署名タイプ</string>
<string name="wc_transaction_info_to_title">宛先</string>
<string name="wc_transaction_request">取引リクエスト</string>
@ -1443,6 +1463,7 @@
<string name="wc_uri_already_used_description">各ペアリング試行で、新しくユニークなURIが使用されていることを確認します</string>
<string name="wc_uri_already_used_title">URIはすでに使用されています</string>
<string name="wc_wallet_connect">ウォレットコネクト</string>
<string name="wc_warning_transaction">不審な取引</string>
<string name="welcome_interrupted_backup_alert_discard">破棄</string>
<string name="welcome_interrupted_backup_alert_message">バックアップが中断されました。再開しますか?</string>
<string name="welcome_interrupted_backup_alert_resume">はい、再開します</string>

View file

@ -96,6 +96,7 @@
<string name="common_add_token">Добавить токен</string>
<string name="common_all">Все</string>
<string name="common_allow">Разрешить</string>
<string name="common_amount">Сумма</string>
<string name="common_analytics">Аналитика</string>
<string name="common_apply">Применить</string>
<string name="common_approval">Одобрение</string>
@ -140,6 +141,7 @@
<string name="common_disabled">Отключено</string>
<string name="common_disconnect">Отключить</string>
<string name="common_done">Готово</string>
<string name="common_edit">Изменить</string>
<string name="common_enable">Включить</string>
<string name="common_enabled">Включено</string>
<string name="common_error">Ошибка</string>

View file

@ -96,6 +96,7 @@
<string name="common_add_token">Додати токен</string>
<string name="common_all">Усе</string>
<string name="common_allow">Дозволити</string>
<string name="common_amount">Сума</string>
<string name="common_analytics">Аналітика</string>
<string name="common_apply">Застосовувати</string>
<string name="common_approval">Затвердження</string>
@ -139,6 +140,7 @@
<string name="common_disabled">Вимкнуто</string>
<string name="common_disconnect">Від\'єднати</string>
<string name="common_done">Готово</string>
<string name="common_edit">Редагувати</string>
<string name="common_enable">Увімкнути</string>
<string name="common_enabled">Увімкнено</string>
<string name="common_error">Помилка</string>

View file

@ -40,6 +40,7 @@
<string name="card_settings_title">卡片設置</string>
<string name="cardano_low_ada">發送金額和找零不能少於1個ADA</string>
<string name="common_accept">接受</string>
<string name="common_amount">數量</string>
<string name="common_approve">允許</string>
<string name="common_attention">注意</string>
<string name="common_balance">餘額: %s</string>

View file

@ -12,7 +12,18 @@
<string name="access_code_create_description">Set a %s-digit Access Code to unlock your wallet.</string>
<string name="access_code_create_title">Create Access Code</string>
<string name="access_code_navtitle">Access code</string>
<string name="account_form_create_button">Add account</string>
<string name="account_form_edit_button">Save</string>
<string name="account_form_name">Account name</string>
<string name="account_form_placeholder_edit_account">Account</string>
<string name="account_form_placeholder_new_account">New account</string>
<string name="account_form_title_create">Add account</string>
<string name="account_form_title_edit">Edit account</string>
<string name="account_unsaved_dialog_action_first">Keep Editing</string>
<string name="account_unsaved_dialog_action_second">Discard</string>
<string name="account_unsaved_dialog_message_create">Are you sure you want to discard new account?</string>
<string name="account_unsaved_dialog_message_edit">Are you sure you want to discard edits?</string>
<string name="account_unsaved_dialog_title">Unsaved Changes</string>
<string name="action_buttons_buy_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for purchase</string>
<string name="action_buttons_sell_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for selling.</string>
<string name="action_buttons_sell_navigation_bar_title">Sell</string>
@ -132,6 +143,7 @@
<string name="common_add_token">Add token</string>
<string name="common_all">All</string>
<string name="common_allow">Allow</string>
<string name="common_amount">Amount</string>
<string name="common_analytics">Analytics</string>
<string name="common_apply">Apply</string>
<string name="common_approval">Approval</string>
@ -177,6 +189,7 @@
<string name="common_disabled">Disabled</string>
<string name="common_disconnect">Disconnect</string>
<string name="common_done">Done</string>
<string name="common_edit">Edit</string>
<string name="common_enable">Enable</string>
<string name="common_enabled">Enabled</string>
<string name="common_error">Error</string>
@ -432,6 +445,8 @@
<string name="hw_activation_need_finish">Finish Now</string>
<string name="hw_activation_need_title">Finish Wallet Activation</string>
<string name="hw_activation_need_warning_description">To complete setup, secure app access with Access Code.</string>
<string name="hw_backup_alert_description">If you do, you\'ll need to start over.</string>
<string name="hw_backup_alert_title">Are you sure you want to exit the activation process?</string>
<string name="hw_backup_google_drive_description">Recover an existing wallet stored in your Google Drive backup</string>
<string name="hw_backup_google_drive_title">Google Drive Backup</string>
<string name="hw_backup_need_action">Go to backup</string>
@ -1129,6 +1144,7 @@
<string name="swapping_fee_estimation_error_text">Fee estimation error. Please send feedback to support.</string>
<string name="swapping_from_title">You swap</string>
<string name="swapping_high_price_impact_description">Swapping this amount of selected tokens will cause a significant price impact and reduce your outcome.</string>
<string name="swapping_high_price_impact_title">High price impact</string>
<string name="swapping_insufficient_funds">Insufficient funds</string>
<string name="swapping_permission_header">Give Permission</string>
<string name="swapping_swap_action">Swap</string>
@ -1495,6 +1511,8 @@
<string name="wc_disconnect_all_alert_title">Disconect All dApps</string>
<string name="wc_estimated_wallet_changes">Estimated wallet changes</string>
<string name="wc_estimated_wallet_changes_not_simulated">The transaction couldn\'t be simulated. Please proceed with caution.</string>
<string name="wc_estimation_is_not_supported">Estimation is not supported for %s</string>
<string name="wc_fee_suggested">Suggested by %s</string>
<string name="wc_malicious_transaction">Malicious transaction</string>
<string name="wc_missing_required_network_description">Add the %s network to your portfolio for this wallet</string>
<string name="wc_missing_required_network_title">The wallet has no required networks</string>
@ -1505,6 +1523,7 @@
<string name="wc_notification_security_risk_subtitle">This domain is flagged as unsafe by multiple security providers. Leave immediately to protect your assets</string>
<string name="wc_notification_security_risk_title">Known security risk</string>
<string name="wc_request_from">Request from</string>
<string name="wc_send_anyway">Send anyway</string>
<string name="wc_signature_type">Signature Type</string>
<string name="wc_transaction_info_to_title">To</string>
<string name="wc_transaction_request">Transaction request</string>

View file

@ -12,12 +12,7 @@ import androidx.compose.ui.Alignment.Companion.TopCenter
import androidx.compose.ui.Alignment.Companion.TopStart
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.ParagraphIntrinsics
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.createFontFamilyResolver
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextAlign
@ -77,24 +72,10 @@ fun AmountTextField(
) {
val decimalFormat = rememberDecimalFormat()
BoxWithConstraints(modifier = modifier) {
var fontSize = textStyle.fontSize
if (isAutoResize) {
val calculateIntrinsics = @Composable {
val transformedText = visualTransformation.filter(AnnotatedString(value)).text.text
ParagraphIntrinsics(
text = transformedText,
style = textStyle.copy(fontSize = fontSize),
density = LocalDensity.current,
fontFamilyResolver = createFontFamilyResolver(LocalContext.current),
)
}
var intrinsics = calculateIntrinsics()
with(LocalDensity.current) {
while (intrinsics.maxIntrinsicWidth > maxWidth.toPx()) {
fontSize *= reduceFactor
intrinsics = calculateIntrinsics()
}
}
val fontSize = if (isAutoResize) {
resizeFont(visualTransformation, value, textStyle, reduceFactor)
} else {
textStyle.fontSize
}
val textColor = if (value.isBlank()) TangemTheme.colors.text.disabled else color
SimpleTextField(

View file

@ -0,0 +1,204 @@
package com.tangem.core.ui.components.fields
import android.annotation.SuppressLint
import androidx.annotation.FloatRange
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.BoxWithConstraintsScope
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.ParagraphIntrinsics
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.createFontFamilyResolver
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextDirection
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.TextUnit
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
/**
* Simple text field for auto size input.
* Can display aligned placeholder.
*
* @param value initial text
* @param onValueChange callback
* @param isAutoResize is text font auto resize
* @param reduceFactor font resize factor
* @param textStyle text and placeholder styles
* @param textFieldModifier modifier for [SimpleTextField]
* @param boxModifier modifier for [BoxWithConstraints]
* @see [SimpleTextField] for other text field params
*/
@SuppressLint("UnusedBoxWithConstraintsScope")
@Composable
fun AutoSizeTextField(
value: String,
onValueChange: (String) -> Unit,
// region AutoSize
isAutoResize: Boolean = true,
@FloatRange(from = 0.0, to = 1.0, fromInclusive = false, toInclusive = false)
reduceFactor: Double = 0.9,
// region TextField
textFieldModifier: Modifier = Modifier,
boxModifier: Modifier = Modifier,
placeholder: TextReference? = null,
singleLine: Boolean = isAutoResize,
centered: Boolean = false,
visualTransformation: VisualTransformation = VisualTransformation.None,
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
keyboardActions: KeyboardActions = KeyboardActions.Default,
color: Color = TangemTheme.colors.text.primary1,
textStyle: TextStyle = TangemTheme.typography.body2.copy(color = color),
placeholderColor: Color = TangemTheme.colors.text.disabled,
readOnly: Boolean = false,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
isValuePasted: Boolean = false,
onValuePastedTriggerDismiss: () -> Unit = {},
decorationBox: (@Composable (innerTextField: @Composable () -> Unit) -> Unit)? = null,
) {
BoxWithConstraints(modifier = boxModifier) {
val fontSize = if (isAutoResize) {
resizeFont(visualTransformation, value, textStyle, reduceFactor)
} else {
textStyle.fontSize
}
val textColor = if (value.isBlank()) TangemTheme.colors.text.disabled else color
SimpleTextField(
value = value,
onValueChange = onValueChange,
textStyle = textStyle.copy(
fontSize = fontSize,
textDirection = TextDirection.ContentOrLtr,
),
isValuePasted = isValuePasted,
onValuePastedTriggerDismiss = onValuePastedTriggerDismiss,
color = textColor,
keyboardOptions = keyboardOptions,
keyboardActions = keyboardActions,
placeholder = placeholder,
placeholderColor = placeholderColor,
singleLine = singleLine,
interactionSource = interactionSource,
readOnly = readOnly,
centered = centered,
visualTransformation = visualTransformation,
decorationBox = decorationBox,
modifier = textFieldModifier,
)
}
}
@Composable
internal fun BoxWithConstraintsScope.resizeFont(
visualTransformation: VisualTransformation,
value: String,
textStyle: TextStyle,
reduceFactor: Double,
): TextUnit {
var result = textStyle.fontSize
val calculateIntrinsics = @Composable {
val transformedText = visualTransformation.filter(AnnotatedString(value)).text.text
ParagraphIntrinsics(
text = transformedText,
style = textStyle.copy(fontSize = result),
density = LocalDensity.current,
fontFamilyResolver = createFontFamilyResolver(LocalContext.current),
)
}
var intrinsics = calculateIntrinsics()
with(LocalDensity.current) {
while (intrinsics.maxIntrinsicWidth > maxWidth.toPx()) {
result *= reduceFactor
intrinsics = calculateIntrinsics()
}
}
return result
}
// region preview
@Preview(widthDp = 360, showBackground = true)
@Composable
private fun AmountTextFieldPreview(
@PreviewParameter(AutoSizeTextFieldPreviewProvider::class) data: AutoSizeTextFieldPreviewData,
) {
var text by remember { mutableStateOf(data.value) }
TangemThemePreview {
AutoSizeTextField(
textFieldModifier = Modifier.fillMaxWidth(),
value = text,
onValueChange = { text = it },
centered = data.centered,
isAutoResize = data.isAutoResize,
placeholder = data.placeholder,
)
}
}
private class AutoSizeTextFieldPreviewProvider : PreviewParameterProvider<AutoSizeTextFieldPreviewData> {
override val values = sequenceOf(
AutoSizeTextFieldPreviewData(
value = "AutoSizeTextField",
placeholder = stringReference("placeholder"),
isAutoResize = true,
centered = false,
),
AutoSizeTextFieldPreviewData(
value = "AutoSizeTextFieldAutoSizeTextFieldAutoSizeTextFieldAutoSizeTextField",
placeholder = stringReference("placeholder"),
isAutoResize = true,
centered = false,
),
AutoSizeTextFieldPreviewData(
value = "AutoSizeTextFieldAutoSizeTextFieldAutoSizeTextFieldAutoSizeTextField",
placeholder = stringReference("Placeholder"),
isAutoResize = true,
centered = false,
),
AutoSizeTextFieldPreviewData(
value = "",
placeholder = stringReference("Placeholder"),
isAutoResize = true,
centered = false,
),
AutoSizeTextFieldPreviewData(
value = "AutoSizeTextField",
placeholder = stringReference("Placeholder"),
isAutoResize = false,
centered = true,
),
AutoSizeTextFieldPreviewData(
value = "AutoSizeTextFieldAutoSizeTextFieldAutoSizeTextFieldAutoSizeTextField",
placeholder = stringReference("Placeholder"),
isAutoResize = false,
centered = true,
),
AutoSizeTextFieldPreviewData(
value = "",
placeholder = stringReference("Placeholder"),
isAutoResize = false,
centered = true,
),
)
}
private data class AutoSizeTextFieldPreviewData(
val value: String,
val placeholder: TextReference,
val isAutoResize: Boolean,
val centered: Boolean,
)
// endregion

View file

@ -8,6 +8,7 @@ import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
@ -17,6 +18,7 @@ import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextAlign
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.res.TangemTheme
@ -39,6 +41,7 @@ fun SimpleTextField(
textStyle: TextStyle = TangemTheme.typography.body2.copy(color = color),
placeholderColor: Color = TangemTheme.colors.text.disabled,
readOnly: Boolean = false,
centered: Boolean = false,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
isValuePasted: Boolean = false,
onValuePastedTriggerDismiss: () -> Unit = {},
@ -80,6 +83,8 @@ fun SimpleTextField(
onValuePastedTriggerDismiss()
}
}
var textStyle = textStyle.copy(color = color)
if (centered) textStyle = textStyle.copy(textAlign = TextAlign.Center)
BasicTextField(
value = textFieldValue,
@ -91,7 +96,7 @@ fun SimpleTextField(
if (stringChangedSinceLastInvocation) onValueChange(newTextFieldValueState.text)
},
textStyle = textStyle.copy(color = color),
textStyle = textStyle,
cursorBrush = SolidColor(TangemTheme.colors.text.primary1),
singleLine = singleLine,
readOnly = readOnly,
@ -105,6 +110,7 @@ fun SimpleTextField(
value = value,
textStyle = textStyle,
textValue = textValue,
centered = centered,
color = placeholderColor,
)
},
@ -118,10 +124,11 @@ private fun SimpleTextPlaceholder(
placeholder: TextReference?,
value: String,
textStyle: TextStyle,
centered: Boolean,
textValue: @Composable () -> Unit,
color: Color = TangemTheme.colors.text.disabled,
) {
Box {
Box(contentAlignment = if (centered) Alignment.Center else Alignment.TopStart) {
if (value.isBlank() && placeholder != null) {
AnimatedContent(
targetState = placeholder,