Updated on 2026-08-14
This commit is contained in:
parent
de8dde89f6
commit
69c3e4c409
4 changed files with 34 additions and 3 deletions
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.feature.swap.converters
|
||||
|
||||
import com.tangem.common.Provider
|
||||
import com.tangem.feature.swap.domain.models.domain.Currency
|
||||
import com.tangem.feature.swap.domain.models.domain.NetworkInfo
|
||||
import com.tangem.feature.swap.domain.models.ui.FoundTokensState
|
||||
|
|
@ -12,6 +13,7 @@ import com.tangem.feature.swap.models.TokenToSelect
|
|||
class TokensDataConverter(
|
||||
private val onSearchEntered: (String) -> Unit,
|
||||
private val onTokenSelected: (String) -> Unit,
|
||||
private val isBalanceHiddenProvider: Provider<Boolean>,
|
||||
) {
|
||||
|
||||
fun convertWithNetwork(value: FoundTokensState, network: NetworkInfo): SwapSelectTokenStateHolder {
|
||||
|
|
@ -34,6 +36,7 @@ class TokensDataConverter(
|
|||
addedTokenBalanceData = TokenBalanceData(
|
||||
amount = tokenWithBalance.tokenBalanceData?.amount,
|
||||
amountEquivalent = tokenWithBalance.tokenBalanceData?.amountEquivalent,
|
||||
isBalanceHidden = isBalanceHiddenProvider.invoke(),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,5 @@ data class Network(
|
|||
data class TokenBalanceData(
|
||||
val amount: String?,
|
||||
val amountEquivalent: String?,
|
||||
val isBalanceHidden: Boolean,
|
||||
)
|
||||
|
|
@ -24,7 +24,11 @@ import kotlinx.collections.immutable.toImmutableList
|
|||
@Suppress("LargeClass")
|
||||
internal class StateBuilder(val actions: UiActions, val isBalanceHiddenProvider: Provider<Boolean>) {
|
||||
|
||||
private val tokensDataConverter = TokensDataConverter(actions.onSearchEntered, actions.onTokenSelected)
|
||||
private val tokensDataConverter = TokensDataConverter(
|
||||
onSearchEntered = actions.onSearchEntered,
|
||||
onTokenSelected = actions.onTokenSelected,
|
||||
isBalanceHiddenProvider = isBalanceHiddenProvider,
|
||||
)
|
||||
|
||||
fun createInitialLoadingState(initialCurrency: Currency, networkInfo: NetworkInfo): SwapStateHolder {
|
||||
return SwapStateHolder(
|
||||
|
|
@ -269,9 +273,18 @@ internal class StateBuilder(val actions: UiActions, val isBalanceHiddenProvider:
|
|||
val patchedReceiveCardData = uiState.receiveCardData.copy(
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
)
|
||||
val selectTokenState = uiState.selectTokenState?.copy(
|
||||
addedTokens = uiState.selectTokenState.addedTokens.map {
|
||||
it.copy(
|
||||
addedTokenBalanceData = it.addedTokenBalanceData?.copy(isBalanceHidden = isBalanceHidden),
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
return uiState.copy(
|
||||
sendCardData = patchedSendCardData,
|
||||
receiveCardData = patchedReceiveCardData,
|
||||
selectTokenState = selectTokenState,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import coil.compose.SubcomposeAsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import com.tangem.common.Strings
|
||||
import com.tangem.core.ui.components.CircleShimmer
|
||||
import com.tangem.core.ui.components.CurrencyPlaceholderIcon
|
||||
import com.tangem.core.ui.components.SpacerW2
|
||||
|
|
@ -185,13 +186,25 @@ private fun TokenItem(token: TokenToSelect, network: Network, screenBackgroundCo
|
|||
modifier = Modifier.padding(start = TangemTheme.dimens.spacing8),
|
||||
) {
|
||||
Text(
|
||||
text = token.addedTokenBalanceData.amountEquivalent.orEmpty(),
|
||||
text = if (token.addedTokenBalanceData.isBalanceHidden &&
|
||||
!token.addedTokenBalanceData.amountEquivalent.isNullOrEmpty()
|
||||
) {
|
||||
Strings.STARS
|
||||
} else {
|
||||
token.addedTokenBalanceData.amountEquivalent.orEmpty()
|
||||
},
|
||||
style = TangemTheme.typography.subtitle1,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
)
|
||||
SpacerW2()
|
||||
Text(
|
||||
text = token.addedTokenBalanceData.amount.orEmpty(),
|
||||
text = if (token.addedTokenBalanceData.isBalanceHidden &&
|
||||
!token.addedTokenBalanceData.amount.isNullOrEmpty()
|
||||
) {
|
||||
Strings.STARS
|
||||
} else {
|
||||
token.addedTokenBalanceData.amount.orEmpty()
|
||||
},
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
)
|
||||
|
|
@ -264,6 +277,7 @@ private val token = TokenToSelect(
|
|||
amount = "15 000 $",
|
||||
amountEquivalent = "15 000 " +
|
||||
"USDT",
|
||||
isBalanceHidden = false,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue