Updated on 2026-08-14
This commit is contained in:
parent
42b90de54d
commit
88b622053d
4 changed files with 17 additions and 13 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,6 @@ internal class SendAmountComponent(
|
|||
}
|
||||
|
||||
interface ModelCallback : SendNavigationModelCallback {
|
||||
fun onAmountResult(amountUM: AmountState)
|
||||
fun onAmountResult(amountUM: AmountState, isResetPredefined: Boolean)
|
||||
}
|
||||
}
|
||||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue