Updated on 2026-08-14
This commit is contained in:
parent
d442154b82
commit
3c80a53254
6 changed files with 15 additions and 11 deletions
|
|
@ -48,8 +48,11 @@ class TokenItemStateConverter(
|
|||
private val iconStateProvider: (CryptoCurrencyStatus) -> CurrencyIconState = {
|
||||
CryptoCurrencyToIconStateConverter().convert(it)
|
||||
},
|
||||
private val onApyLabelClick: ((CryptoCurrencyStatus) -> Unit)? = null,
|
||||
private val titleStateProvider: (CryptoCurrencyStatus) -> TokenItemState.TitleState = {
|
||||
createTitleState(it, yieldModuleApyMap, stakingApyMap)
|
||||
createTitleState(it, yieldModuleApyMap, stakingApyMap, {
|
||||
onApyLabelClick?.invoke(it)
|
||||
})
|
||||
},
|
||||
private val subtitleStateProvider: (CryptoCurrencyStatus) -> TokenItemState.SubtitleState? = {
|
||||
createSubtitleState(it, appCurrency)
|
||||
|
|
@ -62,7 +65,6 @@ class TokenItemStateConverter(
|
|||
},
|
||||
private val onItemClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null,
|
||||
private val onItemLongClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null,
|
||||
private val onApyLabelClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null,
|
||||
) : Converter<CryptoCurrencyStatus, TokenItemState> {
|
||||
|
||||
override fun convert(value: CryptoCurrencyStatus): TokenItemState {
|
||||
|
|
@ -104,7 +106,7 @@ class TokenItemStateConverter(
|
|||
{ onItemLongClick(it, this) }
|
||||
},
|
||||
onApyLabelClick = onApyLabelClick?.let { onApyLabelClick ->
|
||||
{ onApyLabelClick(it, this) }
|
||||
{ onApyLabelClick(this) }
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -164,6 +166,7 @@ class TokenItemStateConverter(
|
|||
currencyStatus: CryptoCurrencyStatus,
|
||||
yieldModuleApyMap: Map<String, String>,
|
||||
stakingApyMap: Map<String, List<Yield.Validator>>,
|
||||
onApyLabelClick: () -> Unit,
|
||||
): TokenItemState.TitleState {
|
||||
return when (val value = currencyStatus.value) {
|
||||
is CryptoCurrencyStatus.Loading,
|
||||
|
|
@ -188,6 +191,7 @@ class TokenItemStateConverter(
|
|||
hasPending = value.hasCurrentNetworkTransactions,
|
||||
earnApy = earnApyText,
|
||||
earnApyIsActive = isActive,
|
||||
onApyLabelClick = onApyLabelClick,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,6 @@ fun TokenItem(
|
|||
|
||||
TokenTitle(
|
||||
state = state.titleState,
|
||||
onApyClick = { state.onApyLabelClick?.invoke(state) },
|
||||
modifier = Modifier
|
||||
.layoutId(layoutId = LayoutId.TITLE)
|
||||
.padding(end = TangemTheme.dimens.spacing8)
|
||||
|
|
|
|||
|
|
@ -21,10 +21,10 @@ import com.tangem.core.ui.res.TangemTheme
|
|||
import com.tangem.core.ui.components.token.state.TokenItemState.TitleState as TokenTitleState
|
||||
|
||||
@Composable
|
||||
internal fun TokenTitle(state: TokenTitleState?, onApyClick: () -> Unit, modifier: Modifier = Modifier) {
|
||||
internal fun TokenTitle(state: TokenTitleState?, modifier: Modifier = Modifier) {
|
||||
when (state) {
|
||||
is TokenTitleState.Content -> {
|
||||
ContentTitle(state = state, modifier = modifier, onApyClick = onApyClick)
|
||||
ContentTitle(state = state, modifier = modifier)
|
||||
}
|
||||
is TokenTitleState.Loading -> {
|
||||
RectangleShimmer(modifier = modifier.placeholderSize(), radius = TangemTheme.dimens.radius4)
|
||||
|
|
@ -37,7 +37,7 @@ internal fun TokenTitle(state: TokenTitleState?, onApyClick: () -> Unit, modifie
|
|||
}
|
||||
|
||||
@Composable
|
||||
private fun ContentTitle(state: TokenTitleState.Content, onApyClick: () -> Unit, modifier: Modifier = Modifier) {
|
||||
private fun ContentTitle(state: TokenTitleState.Content, modifier: Modifier = Modifier) {
|
||||
Row(
|
||||
modifier = modifier,
|
||||
horizontalArrangement = Arrangement.spacedBy(space = TangemTheme.dimens.spacing6),
|
||||
|
|
@ -64,7 +64,7 @@ private fun ContentTitle(state: TokenTitleState.Content, onApyClick: () -> Unit,
|
|||
modifier = Modifier
|
||||
.align(alignment = Alignment.CenterVertically)
|
||||
.clickable {
|
||||
onApyClick()
|
||||
state.onApyLabelClick?.invoke()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,6 +179,7 @@ sealed class TokenItemState {
|
|||
val isAvailable: Boolean = true,
|
||||
val earnApy: TextReference? = null,
|
||||
val earnApyIsActive: Boolean = false,
|
||||
val onApyLabelClick: (() -> Unit)? = null,
|
||||
) : TitleState()
|
||||
|
||||
data object Loading : TitleState()
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ internal class TokenListStateConverter(
|
|||
stakingApyMap = stakingApyMap,
|
||||
onItemClick = { _, status -> onTokenClick(accountId, status) },
|
||||
onItemLongClick = { _, status -> onTokenLongClick(accountId, status) },
|
||||
onApyLabelClick = { _, status -> onApyLabelClick(status) },
|
||||
onApyLabelClick = { status -> onApyLabelClick(status) },
|
||||
)
|
||||
|
||||
override fun convert(value: WalletTokensListState): WalletTokensListState {
|
||||
|
|
|
|||
|
|
@ -91,8 +91,8 @@ internal class YieldSupplyModel @Inject constructor(
|
|||
|
||||
init {
|
||||
checkIfYieldSupplyIsAvailable()
|
||||
if (params.handleNavigation != null) {
|
||||
if (params.handleNavigation == true) {
|
||||
params.handleNavigation?.let { handle ->
|
||||
if (handle) {
|
||||
modelScope.launch {
|
||||
delay(timeMillis = 1000)
|
||||
bottomSheetNavigation.activate(Unit)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue