Updated on 2026-08-14
This commit is contained in:
parent
e53a4bf899
commit
1f0ed3a95e
10 changed files with 33 additions and 30 deletions
|
|
@ -275,7 +275,7 @@ internal object WalletPreviewData {
|
|||
onCancelClick = {},
|
||||
),
|
||||
scrollListToTop = consumedEvent(),
|
||||
isBalanceHidden = true
|
||||
isBalanceHidden = true,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ private enum class LayoutId {
|
|||
@Composable
|
||||
internal fun TokenItem(
|
||||
state: TokenItemState,
|
||||
isBalanceHidden: Boolean,
|
||||
modifier: Modifier = Modifier,
|
||||
reorderableTokenListState: ReorderableLazyListState? = null,
|
||||
isBalanceHidden: Boolean
|
||||
) {
|
||||
CustomContainer(
|
||||
state = state,
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@ private fun TokenList(
|
|||
listState: LazyListState,
|
||||
state: OrganizeTokensListState,
|
||||
dndConfig: OrganizeTokensState.DragAndDropConfig,
|
||||
modifier: Modifier = Modifier,
|
||||
isBalanceHidden: Boolean,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Box(modifier = modifier) {
|
||||
val onDragEnd: (Int, Int) -> Unit = remember {
|
||||
|
|
@ -167,7 +167,7 @@ private fun LazyItemScope.DraggableItem(
|
|||
modifier = itemModifier,
|
||||
state = item.tokenItemState,
|
||||
reorderableTokenListState = reorderableState,
|
||||
isBalanceHidden = isBalanceHidden
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
)
|
||||
// Should be presented in the list but remain invisible
|
||||
is DraggableItem.Placeholder -> Box(modifier = Modifier.fillMaxWidth())
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ internal class OrganizeTokensStateHolder(
|
|||
canDragItemOver = dragAndDropIntents::canDragItemOver,
|
||||
),
|
||||
scrollListToTop = consumedEvent(),
|
||||
isBalanceHidden = true
|
||||
isBalanceHidden = true,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.state.factory.txhistory
|
||||
|
||||
import com.tangem.common.Provider
|
||||
import com.tangem.common.Strings
|
||||
import com.tangem.core.ui.components.transactions.state.TransactionState
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.domain.txhistory.models.TxHistoryItem
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.tangem.feature.wallet.presentation.wallet.ui
|
|||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.LazyListScope
|
||||
import androidx.compose.foundation.lazy.LazyListState
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.material.ExperimentalMaterialApi
|
||||
|
|
@ -153,18 +154,7 @@ private fun WalletContent(
|
|||
modifier = movableItemModifier,
|
||||
)
|
||||
|
||||
if (state is WalletMultiCurrencyState) {
|
||||
val contentTokenListState = state.tokensListState as? WalletTokensListState.ContentState
|
||||
val organizeTokensButton = contentTokenListState?.organizeTokensButton
|
||||
|
||||
if (organizeTokensButton is OrganizeTokensButtonState.Visible) {
|
||||
organizeTokensButton(
|
||||
modifier = itemModifier,
|
||||
isEnabled = organizeTokensButton.isEnabled,
|
||||
onClick = organizeTokensButton.onClick,
|
||||
)
|
||||
}
|
||||
}
|
||||
organizeTokens(state = state, itemModifier = itemModifier)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -179,6 +169,21 @@ private fun WalletContent(
|
|||
)
|
||||
}
|
||||
|
||||
internal fun LazyListScope.organizeTokens(state: WalletState.ContentState, itemModifier: Modifier) {
|
||||
if (state is WalletMultiCurrencyState) {
|
||||
val contentTokenListState = state.tokensListState as? WalletTokensListState.ContentState
|
||||
val organizeTokensButton = contentTokenListState?.organizeTokensButton
|
||||
|
||||
if (organizeTokensButton is OrganizeTokensButtonState.Visible) {
|
||||
organizeTokensButton(
|
||||
modifier = itemModifier,
|
||||
isEnabled = organizeTokensButton.isEnabled,
|
||||
onClick = organizeTokensButton.onClick,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
@Composable
|
||||
private fun UpdatableContainer(
|
||||
|
|
|
|||
|
|
@ -57,10 +57,10 @@ internal fun WalletsList(config: WalletsListConfig, lazyListState: LazyListState
|
|||
) { state ->
|
||||
WalletCard(
|
||||
state = state,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = Modifier
|
||||
.animateItemPlacement()
|
||||
.width(itemWidth),
|
||||
isBalanceHidden = isBalanceHidden
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -102,7 +102,7 @@ private fun Preview_WalletsList_LightTheme() {
|
|||
WalletsList(
|
||||
config = WalletPreviewData.walletListConfig,
|
||||
lazyListState = rememberLazyListState(),
|
||||
isBalanceHidden = false
|
||||
isBalanceHidden = false,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ private fun Preview_WalletsList_DarkTheme() {
|
|||
WalletsList(
|
||||
config = WalletPreviewData.walletListConfig,
|
||||
lazyListState = rememberLazyListState(),
|
||||
isBalanceHidden = false
|
||||
isBalanceHidden = false,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@ private const val HALF_OF_ITEM_WIDTH = 0.5
|
|||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
@Composable
|
||||
internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, isBalanceHidden: Boolean) {
|
||||
internal fun WalletCard(state: WalletCardState, isBalanceHidden: Boolean, modifier: Modifier = Modifier) {
|
||||
@Suppress("DestructuringDeclarationWithTooManyEntries")
|
||||
CardContainer(
|
||||
name = state.title,
|
||||
|
|
@ -82,6 +82,7 @@ internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, i
|
|||
var balanceWidth by remember { mutableStateOf(value = Int.MIN_VALUE) }
|
||||
Balance(
|
||||
state = state,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = Modifier
|
||||
.onSizeChanged { balanceWidth = it.width }
|
||||
.padding(vertical = TangemTheme.dimens.spacing8)
|
||||
|
|
@ -90,7 +91,6 @@ internal fun WalletCard(state: WalletCardState, modifier: Modifier = Modifier, i
|
|||
top.linkTo(anchor = titleRef.bottom)
|
||||
bottom.linkTo(anchor = additionalTextRef.top)
|
||||
},
|
||||
isBalanceHidden = isBalanceHidden
|
||||
)
|
||||
|
||||
AdditionalInfo(
|
||||
|
|
@ -275,7 +275,7 @@ private fun TitleText(text: String, modifier: Modifier = Modifier) {
|
|||
|
||||
@OptIn(ExperimentalAnimationApi::class)
|
||||
@Composable
|
||||
private fun Balance(state: WalletCardState, modifier: Modifier = Modifier, isBalanceHidden: Boolean) {
|
||||
private fun Balance(state: WalletCardState, isBalanceHidden: Boolean, modifier: Modifier = Modifier) {
|
||||
AnimatedContent(
|
||||
targetState = state,
|
||||
label = "Update the balance",
|
||||
|
|
@ -298,7 +298,7 @@ private fun Balance(state: WalletCardState, modifier: Modifier = Modifier, isBal
|
|||
)
|
||||
}
|
||||
is WalletCardState.Error -> NonContentBalanceText(
|
||||
text = if (isBalanceHidden) WalletCardState.HIDDEN_BALANCE_TEXT else WalletCardState.EMPTY_BALANCE_TEXT
|
||||
text = if (isBalanceHidden) WalletCardState.HIDDEN_BALANCE_TEXT else WalletCardState.EMPTY_BALANCE_TEXT,
|
||||
)
|
||||
is WalletCardState.Loading -> {
|
||||
RectangleShimmer(modifier = Modifier.nonContentBalanceSize(TangemTheme.dimens))
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ internal fun LazyListScope.tokensListItems(
|
|||
when (state) {
|
||||
is WalletTokensListState.ContentState -> contentItems(
|
||||
items = state.items,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = modifier,
|
||||
isBalanceHidden = isBalanceHidden
|
||||
)
|
||||
WalletTokensListState.Empty -> nonContentItem(modifier = modifier)
|
||||
}
|
||||
|
|
@ -57,11 +57,11 @@ private fun LazyListScope.contentItems(
|
|||
itemContent = { index, item ->
|
||||
MultiCurrencyContentItem(
|
||||
state = item,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = modifier.roundedShapeItemDecoration(
|
||||
currentIndex = index,
|
||||
lastIndex = items.lastIndex,
|
||||
),
|
||||
isBalanceHidden = isBalanceHidden
|
||||
)
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,15 +18,15 @@ import com.tangem.feature.wallet.presentation.wallet.state.components.WalletToke
|
|||
@Composable
|
||||
internal fun MultiCurrencyContentItem(
|
||||
state: WalletTokensListState.TokensListItemState,
|
||||
modifier: Modifier = Modifier,
|
||||
isBalanceHidden: Boolean,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
when (state) {
|
||||
is WalletTokensListState.TokensListItemState.NetworkGroupTitle -> {
|
||||
NetworkGroupItem(networkName = state.name.resolveReference(), modifier = modifier)
|
||||
}
|
||||
is WalletTokensListState.TokensListItemState.Token -> {
|
||||
TokenItem(state = state.state, modifier = modifier, isBalanceHidden = isBalanceHidden)
|
||||
TokenItem(state = state.state, isBalanceHidden = isBalanceHidden, modifier = modifier)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue