Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-30 15:23:48 +05:00
parent 681fe664c6
commit 01b655feb7
4 changed files with 18 additions and 15 deletions

View file

@ -26,9 +26,7 @@ internal class StakingStateRouter(
StakingStep.Validators,
StakingStep.Amount,
-> showConfirmation()
StakingStep.Confirmation -> {
// TODO staking handle
}
StakingStep.Confirmation -> showInitial()
}
}

View file

@ -152,7 +152,7 @@ internal class SetButtonsStateTransformer : Transformer<StakingUiState> {
private fun StakingUiState.onConfirmationClick() {
if (confirmationState is StakingStates.ConfirmationState.Data) {
if (confirmationState.innerState == InnerConfirmationStakingState.COMPLETED) {
clickIntents.onBackClick()
clickIntents.onNextClick()
} else {
val isEnterAction = actionType == StakingActionCommonType.ENTER
val isApproveNeeded = confirmationState.isApprovalNeeded

View file

@ -3,11 +3,15 @@ package com.tangem.features.staking.impl.presentation.ui
import android.content.res.Configuration
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
@ -45,11 +49,12 @@ internal fun StakingConfirmationContent(
.verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16),
) {
val doneState = state.transactionDoneState
AnimatedVisibility(
visible = state.transactionDoneState is TransactionDoneState.Content,
visible = doneState is TransactionDoneState.Content,
modifier = Modifier.padding(vertical = TangemTheme.dimens.spacing12),
) {
val transactionDoneStateContent = state.transactionDoneState as TransactionDoneState.Content
val transactionDoneStateContent = remember(this) { doneState as TransactionDoneState.Content }
TransactionDoneTitle(
titleRes = R.string.sent_transaction_sent_title,
date = transactionDoneStateContent.timestamp,

View file

@ -164,23 +164,19 @@ internal class StakingViewModel @Inject constructor(
stateController.update { it.copy(actionType = actionType) }
}
stakingStateRouter.onNextClick()
if (isAssentState()) {
getFee(pendingAction)
when {
isInitState() -> stateController.update(SetConfirmationStateLoadingTransformer(yield))
isAssentState() -> getFee(pendingAction)
}
}
override fun onActionClick() {
handleOnNextConfirmationClick()
stakingStateRouter.onNextClick()
}
override fun getFee(pendingAction: PendingAction?) {
viewModelScope.launch {
stateController.update(
SetConfirmationStateLoadingTransformer(
yield = yield,
),
)
stateController.update(SetConfirmationStateLoadingTransformer(yield))
val cryptoCurrencyValue = cryptoCurrencyStatus.value
val confirmationState = value.confirmationState as? StakingStates.ConfirmationState.Data
?: error("No confirmation state")
@ -871,6 +867,10 @@ internal class StakingViewModel @Inject constructor(
InnerConfirmationStakingState.ASSENT
}
private fun isInitState(): Boolean {
return value.currentStep == StakingStep.InitialInfo
}
private suspend fun checkIfSubtractAvailable() {
isAmountSubtractAvailable = isAmountSubtractAvailableUseCase(userWalletId, cryptoCurrencyStatus.currency)
.getOrElse { false }