Updated on 2026-08-14

This commit is contained in:
Tangem 2024-04-01 15:38:28 +05:00
parent 68c8980624
commit db8b6484b3
3 changed files with 50 additions and 8 deletions

View file

@ -3,8 +3,7 @@ package com.tangem.features.send.impl.presentation.ui.amount
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment.Companion.BottomCenter
@ -22,15 +21,15 @@ import com.tangem.core.ui.utils.rememberDecimalFormat
import com.tangem.features.send.impl.presentation.state.fields.SendTextField
@Composable
internal fun AmountField(sendField: SendTextField.AmountField, isFiat: Boolean, isEnabled: Boolean) {
internal fun AmountField(sendField: SendTextField.AmountField, isEnabled: Boolean) {
val decimalFormat = rememberDecimalFormat()
val (primaryValue, secondaryValue) = if (isFiat) {
val (primaryValue, secondaryValue) = if (sendField.isFiatValue) {
sendField.fiatValue to sendField.value
} else {
sendField.value to sendField.fiatValue
}
val (primaryAmount, secondaryAmount) = if (isFiat) {
val (primaryAmount, secondaryAmount) = if (sendField.isFiatValue) {
sendField.fiatAmount to sendField.cryptoAmount
} else {
sendField.cryptoAmount to sendField.fiatAmount
@ -48,13 +47,15 @@ internal fun AmountField(sendField: SendTextField.AmountField, isFiat: Boolean,
textAlign = TextAlign.Center,
),
isEnabled = isEnabled,
isAutoResize = true,
placeholderAlignment = TopCenter,
modifier = Modifier
.padding(
top = TangemTheme.dimens.spacing24,
start = TangemTheme.dimens.spacing12,
end = TangemTheme.dimens.spacing12,
),
)
.requiredHeightIn(min = TangemTheme.dimens.size32),
)
Box(

View file

@ -62,7 +62,6 @@ internal fun LazyListScope.amountField(
)
AmountField(
sendField = amountState.amountTextField,
isFiat = amountState.amountTextField.isFiatValue,
isEnabled = !amountState.isFeeLoading,
)
}

View file

@ -5,8 +5,13 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import com.tangem.core.ui.res.TangemTheme
import com.tangem.features.send.impl.presentation.state.SendStates
import com.tangem.features.send.impl.presentation.state.previewdata.AmountStatePreviewData
import com.tangem.features.send.impl.presentation.state.previewdata.SendClickIntentsStub
import com.tangem.features.send.impl.presentation.ui.common.notifications
import com.tangem.features.send.impl.presentation.viewmodel.SendClickIntents
@ -30,4 +35,41 @@ internal fun SendAmountContent(
)
notifications(amountState.notifications)
}
}
}
// region Preview
@Preview
@Composable
private fun AmountFieldPreview_Light(
@PreviewParameter(AmountFieldPreviewProvider::class) amountState: SendStates.AmountState,
) {
TangemTheme {
SendAmountContent(
amountState = amountState,
isBalanceHiding = false,
clickIntents = SendClickIntentsStub,
)
}
}
@Preview
@Composable
private fun AmountFieldPreview_Dark(
@PreviewParameter(AmountFieldPreviewProvider::class) amountState: SendStates.AmountState,
) {
TangemTheme(isDark = true) {
SendAmountContent(
amountState = amountState,
isBalanceHiding = false,
clickIntents = SendClickIntentsStub,
)
}
}
private class AmountFieldPreviewProvider : PreviewParameterProvider<SendStates.AmountState> {
override val values: Sequence<SendStates.AmountState>
get() = sequenceOf(
AmountStatePreviewData.amountState,
)
}
// endregion