Updated on 2026-08-14
This commit is contained in:
parent
cf8009da88
commit
d2d9377386
4 changed files with 12 additions and 1 deletions
|
|
@ -152,6 +152,7 @@ internal object TokenDetailsPreviewData {
|
|||
formatArgs = wrappedList("Solana"),
|
||||
),
|
||||
iconState = iconState,
|
||||
isEnabled = true,
|
||||
onStakeClicked = {},
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ internal sealed interface StakingBlockUM {
|
|||
val iconState: IconState,
|
||||
val titleText: TextReference,
|
||||
val subtitleText: TextReference,
|
||||
val isEnabled: Boolean,
|
||||
val onStakeClicked: () -> Unit,
|
||||
) : StakingBlockUM
|
||||
}
|
||||
|
|
@ -158,7 +158,7 @@ internal class TokenDetailsLoadedBalanceConverter(
|
|||
return when {
|
||||
stakingCryptoAmount.isNullOrZero() && stakingEntryInfo != null -> {
|
||||
if (pendingBalances.isEmpty()) {
|
||||
getStakeAvailableState(stakingEntryInfo, iconState)
|
||||
getStakeAvailableState(stakingEntryInfo, iconState, isStakingButtonEnabled(status))
|
||||
} else {
|
||||
getStakedBlockWithFiatAmount(status, pendingBalances.sumOf { it.amount }, null)
|
||||
}
|
||||
|
|
@ -170,6 +170,12 @@ internal class TokenDetailsLoadedBalanceConverter(
|
|||
}
|
||||
}
|
||||
|
||||
private fun isStakingButtonEnabled(status: CryptoCurrencyStatus): Boolean {
|
||||
return status.value is CryptoCurrencyStatus.Loaded ||
|
||||
status.value is CryptoCurrencyStatus.NoQuote ||
|
||||
status.value is CryptoCurrencyStatus.Custom
|
||||
}
|
||||
|
||||
private fun getStakedBlockWithFiatAmount(
|
||||
status: CryptoCurrencyStatus,
|
||||
stakingAmount: BigDecimal?,
|
||||
|
|
@ -210,6 +216,7 @@ internal class TokenDetailsLoadedBalanceConverter(
|
|||
private fun getStakeAvailableState(
|
||||
stakingEntryInfo: StakingEntryInfo,
|
||||
iconState: IconState,
|
||||
isEnabled: Boolean,
|
||||
): StakingBlockUM.StakeAvailable {
|
||||
val apr = stakingEntryInfo.apr.format { percent() }
|
||||
return StakingBlockUM.StakeAvailable(
|
||||
|
|
@ -222,6 +229,7 @@ internal class TokenDetailsLoadedBalanceConverter(
|
|||
formatArgs = wrappedList(stakingEntryInfo.tokenSymbol),
|
||||
),
|
||||
iconState = iconState,
|
||||
isEnabled = isEnabled,
|
||||
onStakeClicked = clickIntents::onStakeBannerClick,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ private fun StakingAvailableContent(state: StakingBlockUM.StakeAvailable, modifi
|
|||
SecondaryButton(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = stringResource(id = R.string.common_stake),
|
||||
enabled = state.isEnabled,
|
||||
onClick = state.onStakeClicked,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue