Updated on 2026-08-14

This commit is contained in:
Tangem 2024-01-25 15:39:56 +03:00
parent 0450ce9906
commit b14caba3cf
9 changed files with 677 additions and 43 deletions

View file

@ -0,0 +1,32 @@
package com.tangem.features.send.impl.presentation.state.amount
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 SendAmountCurrencyConverter(
private val currentStateProvider: Provider<SendUiState>,
private val cryptoCurrencyStatusProvider: Provider<CryptoCurrencyStatus>,
) : Converter<Boolean, SendUiState> {
override fun convert(value: Boolean): SendUiState {
val state = currentStateProvider()
val amountState = state.amountState ?: return state
val amountTextField = amountState.amountTextField
val cryptoCurrencyStatus = cryptoCurrencyStatusProvider()
val isValidFiatRate = cryptoCurrencyStatus.value.fiatRate.isNullOrZero()
return if (amountTextField.isFiatValue == value && !isValidFiatRate) {
state
} else {
return state.copy(
amountState = amountState.copy(
amountTextField = amountTextField.copy(
isFiatValue = value,
),
),
)
}
}
}