Updated on 2026-08-14

This commit is contained in:
Tangem 2024-02-12 17:07:25 +03:00
parent 67a80fc097
commit 8ee78ad042
8 changed files with 169 additions and 100 deletions

View file

@ -5,6 +5,7 @@ import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.features.send.impl.presentation.state.SendUiState
import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
import com.tangem.utils.isNullOrZero
internal class SendAmountFieldMaxAmountConverter(
private val currentStateProvider: Provider<SendUiState>,
@ -23,6 +24,8 @@ internal class SendAmountFieldMaxAmountConverter(
val decimalCryptoValue = cryptoCurrencyStatus.value.amount
val decimalFiatValue = cryptoCurrencyStatus.value.fiatAmount
if (decimalCryptoValue.isNullOrZero()) return state
val cryptoValue = decimalCryptoValue?.parseBigDecimal(cryptoDecimals).orEmpty()
val fiatValue = decimalFiatValue?.parseBigDecimal(fiatDecimals).orEmpty()
return state.copy(

View file

@ -3,6 +3,8 @@ package com.tangem.features.send.impl.presentation.ui
import androidx.annotation.StringRes
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.expandHorizontally
import androidx.compose.animation.shrinkHorizontally
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
@ -14,6 +16,7 @@ import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
@ -54,6 +57,8 @@ private fun SendSecondaryNavigationButton(uiState: SendUiState) {
val isCorrectScreen = currentState.value == SendUiStateType.Amount || currentState.value == SendUiStateType.Fee
AnimatedVisibility(
visible = !isEditingDisabled && isCorrectScreen,
enter = expandHorizontally(expandFrom = Alignment.End),
exit = shrinkHorizontally(shrinkTowards = Alignment.End),
) {
Icon(
modifier = Modifier

View file

@ -46,6 +46,7 @@ internal fun SendAmountContent(
.weight(1f)
.height(TangemTheme.dimens.size40),
config = amountState.segmentedButtonConfig,
showIndication = false,
onClick = { clickIntents.onCurrencyChangeClick(it.isFiat) },
) {
SendAmountCurrencyButton(it)

View file

@ -1,15 +1,14 @@
package com.tangem.features.send.impl.presentation.ui.recipient
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
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.CenterEnd
import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
import com.tangem.core.ui.components.fields.SimpleTextField
import com.tangem.core.ui.components.inputrow.inner.CrossIcon
import com.tangem.core.ui.components.inputrow.inner.PasteButton
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
@ -35,40 +34,46 @@ internal fun TextFieldWithPaste(
else -> label to TangemTheme.colors.text.secondary
}
FooterContainer(modifier, footer) {
Row(
Box(
modifier = Modifier
.background(
color = TangemTheme.colors.background.action,
shape = TangemTheme.shapes.roundedCornersXMedium,
),
) {
Column(
modifier = Modifier
.weight(1f)
.padding(TangemTheme.dimens.spacing12),
) {
Text(
text = title.resolveReference(),
style = TangemTheme.typography.body2,
color = color,
)
SimpleTextField(
value = value,
placeholder = placeholder,
onValueChange = onValueChange,
readOnly = isReadOnly,
.padding(end = TangemTheme.dimens.spacing16),
) {
Row {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(top = TangemTheme.dimens.spacing6),
.weight(1f)
.padding(TangemTheme.dimens.spacing12),
) {
Text(
text = title.resolveReference(),
style = TangemTheme.typography.body2,
color = color,
)
SimpleTextField(
value = value,
placeholder = placeholder,
onValueChange = onValueChange,
readOnly = isReadOnly,
modifier = Modifier
.fillMaxWidth()
.padding(top = TangemTheme.dimens.spacing6),
)
}
CrossIcon(
onClick = onPasteClick,
modifier = Modifier
.align(CenterVertically),
)
}
if (!isReadOnly) {
PasteButton(
isPasteButtonVisible = value.isBlank(),
onClick = onPasteClick,
modifier = Modifier
.align(CenterVertically)
.padding(end = TangemTheme.dimens.spacing16),
modifier = Modifier.align(CenterEnd),
)
}
}