Updated on 2026-08-14
This commit is contained in:
parent
d19b3f2018
commit
ffd5170370
3 changed files with 11 additions and 11 deletions
|
|
@ -27,6 +27,10 @@ sealed class GiveTxPermissionState {
|
|||
val cancelButton: CancelPermissionButton,
|
||||
val onChangeApproveType: ((ApproveType) -> Unit)? = null,
|
||||
) : GiveTxPermissionState()
|
||||
|
||||
fun GiveTxPermissionState.getApproveTypeOrNull(): ApproveType? {
|
||||
return (this as? ReadyForRequest)?.approveType
|
||||
}
|
||||
}
|
||||
|
||||
enum class ApproveType(val text: TextReference) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.tangem.feature.swap.viewmodels
|
||||
|
||||
import com.tangem.common.ui.bottomsheet.permission.state.ApproveType
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.feature.swap.domain.models.domain.SwapDataModel
|
||||
import com.tangem.feature.swap.domain.models.domain.SwapProvider
|
||||
|
|
@ -16,7 +15,6 @@ data class SwapProcessDataState(
|
|||
// Amount from input
|
||||
val amount: String? = null,
|
||||
val approveDataModel: RequestApproveStateData? = null,
|
||||
val approveType: ApproveType? = null,
|
||||
val swapDataModel: SwapDataModel? = null,
|
||||
val selectedFee: TxFee? = null,
|
||||
val tokensDataState: TokensDataStateExpress? = null,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import arrow.core.getOrElse
|
|||
import com.tangem.common.routing.AppRoute
|
||||
import com.tangem.common.routing.bundle.unbundle
|
||||
import com.tangem.common.ui.bottomsheet.permission.state.ApproveType
|
||||
import com.tangem.common.ui.bottomsheet.permission.state.GiveTxPermissionState.InProgress.getApproveTypeOrNull
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.analytics.models.AnalyticsParam
|
||||
import com.tangem.core.analytics.models.Basic
|
||||
|
|
@ -512,10 +513,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
swapDataModel: SwapDataModel?,
|
||||
) {
|
||||
dataState = if (permissionState is PermissionDataState.PermissionReadyForRequest) {
|
||||
dataState.copy(
|
||||
approveDataModel = permissionState.requestApproveData,
|
||||
approveType = dataState.approveType ?: ApproveType.UNLIMITED,
|
||||
)
|
||||
dataState.copy(approveDataModel = permissionState.requestApproveData)
|
||||
} else {
|
||||
dataState.copy(
|
||||
swapDataModel = swapDataModel,
|
||||
|
|
@ -655,9 +653,10 @@ internal class SwapViewModel @Inject constructor(
|
|||
val approveDataModel = requireNotNull(dataState.approveDataModel) {
|
||||
"dataState.approveDataModel.spenderAddress shouldn't be null"
|
||||
}
|
||||
val approveType = requireNotNull(dataState.approveType?.toDomainApproveType()) {
|
||||
"uiState.permissionState should not be null"
|
||||
}
|
||||
val approveType =
|
||||
requireNotNull(uiState.permissionState.getApproveTypeOrNull()?.toDomainApproveType()) {
|
||||
"uiState.permissionState should not be null"
|
||||
}
|
||||
val feeForPermission = when (val fee = approveDataModel.fee) {
|
||||
TxFeeState.Empty -> {
|
||||
makeDefaultAlert(resourceReference(R.string.swapping_fee_estimation_error_text))
|
||||
|
|
@ -1008,7 +1007,6 @@ internal class SwapViewModel @Inject constructor(
|
|||
onAmountSelected = { onAmountSelected(it) },
|
||||
onChangeApproveType = { approveType ->
|
||||
uiState = stateBuilder.updateApproveType(uiState, approveType)
|
||||
dataState = dataState.copy(approveType = approveType)
|
||||
},
|
||||
onClickFee = {
|
||||
val selectedFee = dataState.selectedFee?.feeType ?: FeeType.NORMAL
|
||||
|
|
@ -1228,7 +1226,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
private fun sendPermissionApproveClickedEvent() {
|
||||
val sendTokenSymbol = dataState.fromCryptoCurrency?.currency?.symbol
|
||||
val receiveTokenSymbol = dataState.toCryptoCurrency?.currency?.symbol
|
||||
val approveType = dataState.approveType
|
||||
val approveType = uiState.permissionState.getApproveTypeOrNull()
|
||||
if (sendTokenSymbol != null && receiveTokenSymbol != null && approveType != null) {
|
||||
analyticsEventHandler.send(
|
||||
SwapEvents.ButtonPermissionApproveClicked(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue