Updated on 2026-08-14

This commit is contained in:
Tangem 2025-05-12 18:49:05 +05:00
parent 42b90de54d
commit 88b622053d
4 changed files with 17 additions and 13 deletions

View file

@ -4,19 +4,19 @@ sealed class PredefinedValues {
data object Empty : PredefinedValues()
sealed class Content : PredefinedValues() {
abstract val amount: String
abstract val address: String
abstract val amount: String?
abstract val memo: String?
data class Deeplink(
override val amount: String,
override val amount: String?,
override val address: String,
override val memo: String?,
val transactionId: String,
) : Content()
data class QrCode(
override val amount: String,
override val amount: String?,
override val address: String,
override val memo: String?,
) : Content()

View file

@ -121,8 +121,8 @@ internal class SendModel @Inject constructor(
_uiState.update { it.copy(destinationUM = destinationUM) }
}
override fun onAmountResult(amountUM: AmountState) {
resetPredefinedAmount()
override fun onAmountResult(amountUM: AmountState, isResetPredefined: Boolean) {
if (isResetPredefined) resetPredefinedAmount()
_uiState.update { it.copy(amountUM = amountUM) }
}
@ -131,7 +131,6 @@ internal class SendModel @Inject constructor(
}
override fun onResult(sendUM: SendUM) {
resetPredefinedAmount()
_uiState.update { sendUM }
}
@ -163,8 +162,8 @@ internal class SendModel @Inject constructor(
// reset predefined amount
val internalPredefinedValues = predefinedValues
predefinedValues = when (internalPredefinedValues) {
is PredefinedValues.Content.Deeplink -> internalPredefinedValues.copy(amount = "")
is PredefinedValues.Content.QrCode -> internalPredefinedValues.copy(amount = "")
is PredefinedValues.Content.Deeplink -> internalPredefinedValues.copy(amount = null)
is PredefinedValues.Content.QrCode -> internalPredefinedValues.copy(amount = null)
PredefinedValues.Empty -> internalPredefinedValues
}
}

View file

@ -38,6 +38,6 @@ internal class SendAmountComponent(
}
interface ModelCallback : SendNavigationModelCallback {
fun onAmountResult(amountUM: AmountState)
fun onAmountResult(amountUM: AmountState, isResetPredefined: Boolean)
}
}

View file

@ -103,9 +103,9 @@ internal class SendAmountModel @Inject constructor(
)
}
}
val predefinedValues = params.predefinedValues as? PredefinedValues.Content
if (predefinedValues?.amount != null) {
onAmountValueChange(predefinedValues.amount)
val predefinedAmount = (params.predefinedValues as? PredefinedValues.Content)?.amount
if (predefinedAmount != null) {
onAmountValueChange(predefinedAmount)
}
}
@ -220,7 +220,12 @@ internal class SendAmountModel @Inject constructor(
private fun saveResult() {
val params = params as? SendAmountComponentParams.AmountParams ?: return
params.callback.onAmountResult(uiState.value)
val predefinedAmount = (params.predefinedValues as? PredefinedValues.Content.QrCode)?.amount
val enteredAmount = (uiState.value as? AmountState.Data)?.amountTextField?.value
params.callback.onAmountResult(
amountUM = uiState.value,
isResetPredefined = predefinedAmount != enteredAmount,
)
}
private fun configAmountNavigation() {