diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt index c2fcce7f80..5d7d0260e8 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt @@ -155,14 +155,15 @@ internal class SetButtonsStateTransformer( } private fun StakingUiState.onConfirmationClick() { - if (confirmationState is StakingStates.ConfirmationState.Data) { + val confirmationState = confirmationState as? StakingStates.ConfirmationState.Data + val amountState = amountState as? AmountState.Data + if (confirmationState != null && amountState != null) { if (confirmationState.innerState == InnerConfirmationStakingState.COMPLETED) { clickIntents.onNextClick() } else { + val amount = amountState.amountTextField.cryptoAmount.value.orZero() val isEnterAction = actionType == StakingActionCommonType.Enter - val isApproveNeeded = confirmationState.isApprovalNeeded - - if (isEnterAction && isApproveNeeded) { + if (isEnterAction && confirmationState.isApprovalNeeded && confirmationState.allowance < amount) { clickIntents.showApprovalBottomSheet() } else { clickIntents.onActionClick()