Updated on 2026-08-14
This commit is contained in:
parent
681fe664c6
commit
01b655feb7
4 changed files with 18 additions and 15 deletions
|
|
@ -26,9 +26,7 @@ internal class StakingStateRouter(
|
|||
StakingStep.Validators,
|
||||
StakingStep.Amount,
|
||||
-> showConfirmation()
|
||||
StakingStep.Confirmation -> {
|
||||
// TODO staking handle
|
||||
}
|
||||
StakingStep.Confirmation -> showInitial()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue