Updated on 2026-08-14
This commit is contained in:
parent
299117f8c4
commit
184aa49d3a
9 changed files with 17 additions and 50 deletions
|
|
@ -23,7 +23,6 @@ import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles
|
|||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.core.ui.extensions.wrappedList
|
||||
import com.tangem.domain.account.featuretoggle.AccountsFeatureToggles
|
||||
import com.tangem.domain.account.status.usecase.ManageCryptoCurrenciesUseCase
|
||||
import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase
|
||||
|
|
@ -626,10 +625,7 @@ internal class SendConfirmModel @Inject constructor(
|
|||
|
||||
private fun getPrimaryButtonText(confirmUM: ConfirmUM, isHoldToConfirm: Boolean): TextReference {
|
||||
return when {
|
||||
isHoldToConfirm -> resourceReference(
|
||||
id = com.tangem.core.ui.R.string.common_hold_to,
|
||||
formatArgs = wrappedList(resourceReference(R.string.common_send)),
|
||||
)
|
||||
isHoldToConfirm -> resourceReference(R.string.common_send)
|
||||
confirmUM is ConfirmUM.Success -> resourceReference(R.string.common_close)
|
||||
confirmUM is ConfirmUM.Content && confirmUM.isSending -> resourceReference(R.string.send_sending)
|
||||
else -> resourceReference(R.string.common_send)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import com.tangem.core.decompose.di.ModelScoped
|
||||
import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles
|
||||
import com.tangem.domain.models.wallet.isColdWallet
|
||||
import com.tangem.domain.models.wallet.isHotWallet
|
||||
import javax.inject.Inject
|
||||
|
|
@ -25,6 +26,7 @@ import javax.inject.Inject
|
|||
@ModelScoped
|
||||
internal class StakingStateController @Inject constructor(
|
||||
urlOpener: UrlOpener,
|
||||
private val holdToConfirmButtonFeatureToggles: HoldToConfirmButtonFeatureToggles,
|
||||
) {
|
||||
|
||||
val value: StakingUiState get() = uiState.value
|
||||
|
|
@ -40,7 +42,8 @@ internal class StakingStateController @Inject constructor(
|
|||
mutableUiState.update { state ->
|
||||
state.copy(
|
||||
showColdWalletInteractionIcon = userWallet.isColdWallet,
|
||||
shouldShowHoldToConfirmButton = userWallet.isHotWallet,
|
||||
shouldShowHoldToConfirmButton = holdToConfirmButtonFeatureToggles.isHoldToConfirmEnabled &&
|
||||
userWallet.isHotWallet,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.tangem.core.navigation.url.UrlOpener
|
|||
import com.tangem.core.ui.R
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.wrappedList
|
||||
import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType
|
||||
import com.tangem.features.staking.impl.presentation.state.*
|
||||
import com.tangem.features.staking.impl.presentation.state.utils.getPendingActionTitle
|
||||
|
|
@ -50,7 +49,7 @@ internal class SetButtonsStateTransformer(
|
|||
val isIconVisible = isConfirmation && !isCompleted && !isHoldToConfirm
|
||||
val isPrimaryButtonDisabled = prevState.isPrimaryButtonDisabled()
|
||||
return NavigationButton(
|
||||
textReference = prevState.getButtonText(isHoldToConfirm),
|
||||
textReference = prevState.getButtonText(),
|
||||
iconRes = R.drawable.ic_tangem_24.takeIf { prevState.showColdWalletInteractionIcon },
|
||||
isDimmed = isPrimaryButtonDisabled,
|
||||
isIconVisible = isIconVisible,
|
||||
|
|
@ -92,7 +91,7 @@ internal class SetButtonsStateTransformer(
|
|||
else -> true
|
||||
}
|
||||
|
||||
private fun StakingUiState.getButtonText(isHoldToConfirm: Boolean): TextReference {
|
||||
private fun StakingUiState.getButtonText(): TextReference {
|
||||
return when (currentStep) {
|
||||
StakingStep.InitialInfo -> {
|
||||
val initialState = initialInfoState as? StakingStates.InitialInfoState.Data
|
||||
|
|
@ -103,7 +102,7 @@ internal class SetButtonsStateTransformer(
|
|||
}
|
||||
}
|
||||
StakingStep.Success -> resourceReference(R.string.common_close)
|
||||
StakingStep.Confirmation -> getConfirmationButtonText(isHoldToConfirm)
|
||||
StakingStep.Confirmation -> getConfirmationButtonText()
|
||||
StakingStep.Validators -> resourceReference(R.string.common_continue)
|
||||
StakingStep.Amount,
|
||||
StakingStep.RestakeValidator,
|
||||
|
|
@ -112,7 +111,7 @@ internal class SetButtonsStateTransformer(
|
|||
}
|
||||
}
|
||||
|
||||
private fun StakingUiState.getConfirmationButtonText(isHoldToConfirm: Boolean): TextReference {
|
||||
private fun StakingUiState.getConfirmationButtonText(): TextReference {
|
||||
val confirmationState = confirmationState as? StakingStates.ConfirmationState.Data
|
||||
?: return resourceReference(R.string.common_close)
|
||||
val amountState = amountState as? AmountState.Data
|
||||
|
|
@ -125,10 +124,8 @@ internal class SetButtonsStateTransformer(
|
|||
}
|
||||
}
|
||||
|
||||
val baseText = getBaseActionText(confirmationState)
|
||||
?: return resourceReference(R.string.common_close)
|
||||
|
||||
return baseText.wrapWithHoldToIf(isHoldToConfirm)
|
||||
return getBaseActionText(confirmationState)
|
||||
?: resourceReference(R.string.common_close)
|
||||
}
|
||||
|
||||
private fun StakingUiState.getBaseActionText(
|
||||
|
|
@ -139,12 +136,6 @@ internal class SetButtonsStateTransformer(
|
|||
is StakingActionCommonType.Pending -> confirmationState.pendingAction?.type.getPendingActionTitle()
|
||||
}
|
||||
|
||||
private fun TextReference.wrapWithHoldToIf(condition: Boolean): TextReference = if (condition) {
|
||||
resourceReference(id = R.string.common_hold_to, formatArgs = wrappedList(this))
|
||||
} else {
|
||||
this
|
||||
}
|
||||
|
||||
private fun StakingUiState.onPrimaryClick() {
|
||||
when (currentStep) {
|
||||
StakingStep.InitialInfo -> clickIntents.onNextClick()
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import com.tangem.core.decompose.navigation.Router
|
|||
import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.wrappedList
|
||||
import com.tangem.domain.account.status.usecase.GetAccountCurrencyByAddressUseCase
|
||||
import com.tangem.domain.express.models.ExpressOperationType
|
||||
import com.tangem.domain.express.models.ExpressProviderType
|
||||
|
|
@ -550,10 +549,7 @@ internal class SendWithSwapConfirmModel @Inject constructor(
|
|||
|
||||
private fun getPrimaryButtonText(confirmUM: ConfirmUM, isHoldToConfirm: Boolean): TextReference {
|
||||
return when {
|
||||
isHoldToConfirm -> resourceReference(
|
||||
id = com.tangem.core.ui.R.string.common_hold_to,
|
||||
formatArgs = wrappedList(resourceReference(R.string.common_send)),
|
||||
)
|
||||
isHoldToConfirm -> resourceReference(R.string.common_send)
|
||||
confirmUM is ConfirmUM.Success -> resourceReference(R.string.common_close)
|
||||
confirmUM is ConfirmUM.Content && confirmUM.isTransactionInProcess ->
|
||||
resourceReference(R.string.send_sending)
|
||||
|
|
|
|||
|
|
@ -383,10 +383,7 @@ private fun MainButton(state: SwapStateHolder) {
|
|||
state.swapButton.isHoldToConfirm -> {
|
||||
HoldToConfirmButton(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = stringResourceSafe(
|
||||
R.string.common_hold_to,
|
||||
stringResourceSafe(id = R.string.swapping_swap_action),
|
||||
),
|
||||
text = stringResourceSafe(R.string.swapping_swap_action),
|
||||
enabled = state.swapButton.isEnabled,
|
||||
onConfirm = state.swapButton.onClick,
|
||||
isLoading = state.swapButton.isInProgress,
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import com.tangem.core.ui.components.HoldToConfirmButton
|
|||
import com.tangem.core.ui.components.PrimaryButton
|
||||
import com.tangem.core.ui.components.PrimaryButtonIconEnd
|
||||
import com.tangem.core.ui.components.SecondaryButton
|
||||
import com.tangem.core.ui.R as CoreR
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
|
|
@ -55,10 +54,7 @@ internal fun WcTransactionRequestButtons(
|
|||
isHoldToConfirmEnabled -> {
|
||||
HoldToConfirmButton(
|
||||
modifier = buttonModifier,
|
||||
text = stringResourceSafe(
|
||||
CoreR.string.common_hold_to,
|
||||
activeButtonText.resolveReference(),
|
||||
),
|
||||
text = activeButtonText.resolveReference(),
|
||||
onConfirm = onClickActiveButton,
|
||||
isLoading = isLoading,
|
||||
enabled = enabled,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import com.tangem.core.decompose.context.child
|
|||
import com.tangem.core.decompose.model.getOrCreateModel
|
||||
import com.tangem.core.ui.components.HoldToConfirmButton
|
||||
import com.tangem.core.ui.components.PrimaryButtonIconEnd
|
||||
import com.tangem.core.ui.R as CoreR
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
|
||||
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
|
||||
|
|
@ -82,10 +81,7 @@ internal class YieldSupplyApproveComponent(
|
|||
|
||||
if (state.isHoldToConfirmEnabled) {
|
||||
HoldToConfirmButton(
|
||||
text = stringResourceSafe(
|
||||
CoreR.string.common_hold_to,
|
||||
stringResourceSafe(R.string.common_confirm),
|
||||
),
|
||||
text = stringResourceSafe(R.string.common_confirm),
|
||||
onConfirm = model::onClick,
|
||||
enabled = state.isPrimaryButtonEnabled,
|
||||
isLoading = state.isTransactionSending,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import com.tangem.core.ui.extensions.stringResourceSafe
|
|||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.core.ui.R as CoreR
|
||||
import com.tangem.features.yield.supply.impl.R
|
||||
import com.tangem.features.yield.supply.impl.common.entity.YieldSupplyActionUM
|
||||
import com.tangem.features.yield.supply.impl.common.entity.YieldSupplyFeeUM
|
||||
|
|
@ -114,10 +113,7 @@ internal class YieldSupplyStartEarningComponent(
|
|||
|
||||
if (state.isHoldToConfirmEnabled) {
|
||||
HoldToConfirmButton(
|
||||
text = stringResourceSafe(
|
||||
CoreR.string.common_hold_to,
|
||||
stringResourceSafe(R.string.yield_module_start_earning),
|
||||
),
|
||||
text = stringResourceSafe(R.string.yield_module_start_earning),
|
||||
onConfirm = model::onClick,
|
||||
enabled = state.isPrimaryButtonEnabled,
|
||||
isLoading = state.isTransactionSending,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import com.tangem.core.decompose.context.child
|
|||
import com.tangem.core.decompose.model.getOrCreateModel
|
||||
import com.tangem.core.ui.components.HoldToConfirmButton
|
||||
import com.tangem.core.ui.components.PrimaryButtonIconEnd
|
||||
import com.tangem.core.ui.R as CoreR
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
|
||||
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
|
||||
|
|
@ -86,10 +85,7 @@ internal class YieldSupplyStopEarningComponent(
|
|||
|
||||
if (state.isHoldToConfirmEnabled) {
|
||||
HoldToConfirmButton(
|
||||
text = stringResourceSafe(
|
||||
CoreR.string.common_hold_to,
|
||||
stringResourceSafe(R.string.common_confirm),
|
||||
),
|
||||
text = stringResourceSafe(R.string.common_confirm),
|
||||
onConfirm = model::onClick,
|
||||
enabled = state.isPrimaryButtonEnabled,
|
||||
isLoading = state.isTransactionSending,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue