Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-22 01:22:24 -07:00
parent 633666c3ce
commit da13e0e62c
2 changed files with 27 additions and 10 deletions

View file

@ -45,6 +45,7 @@ import com.tangem.core.ui.components.containers.pullToRefresh.TangemPullToRefres
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownItem import com.tangem.core.ui.components.dropdownmenu.TangemDropdownItem
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenu import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenu
import com.tangem.core.ui.components.notifications.Notification import com.tangem.core.ui.components.notifications.Notification
import com.tangem.core.ui.components.notifications.NotificationConfig
import com.tangem.core.ui.components.text.applyBladeBrush import com.tangem.core.ui.components.text.applyBladeBrush
import com.tangem.core.ui.extensions.* import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemTheme
@ -539,7 +540,16 @@ internal class TangemPayDetailsUMProvider : CollectionPreviewParameterProvider<T
isBalanceHidden = false, isBalanceHidden = false,
addToWalletBlockState = null, addToWalletBlockState = null,
accountDeactivatedNotificationConfig = null, accountDeactivatedNotificationConfig = null,
errorNotificationConfig = null, errorNotificationConfig = NotificationConfig(
title = TextReference.Str("Error title"),
subtitle = TextReference.Str("Error subtitle"),
iconResId = R.drawable.ic_alert_circle_24,
buttonsState = NotificationConfig.ButtonsState.SecondaryButtonConfig(
text = TextReference.Str("Error btn text"),
onClick = {},
iconResId = R.drawable.ic_tangem_24,
),
),
), ),
), ),
) )

View file

@ -30,6 +30,8 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.util.fastForEach import androidx.compose.ui.util.fastForEach
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.tangem.core.ui.components.SpacerH12
import com.tangem.core.ui.components.SpacerH24
import com.tangem.core.ui.components.SpacerW import com.tangem.core.ui.components.SpacerW
import com.tangem.core.ui.components.buttons.actions.ActionButtonConfig import com.tangem.core.ui.components.buttons.actions.ActionButtonConfig
import com.tangem.core.ui.components.containers.pullToRefresh.TangemPullToRefreshSlidingContainer import com.tangem.core.ui.components.containers.pullToRefresh.TangemPullToRefreshSlidingContainer
@ -55,12 +57,7 @@ import com.tangem.features.tangempay.components.express.PreviewEmptyExpressTrans
import com.tangem.features.tangempay.components.txHistory.PreviewTangemPayTxHistoryComponent import com.tangem.features.tangempay.components.txHistory.PreviewTangemPayTxHistoryComponent
import com.tangem.features.tangempay.components.txHistory.TangemPayTxHistoryComponent import com.tangem.features.tangempay.components.txHistory.TangemPayTxHistoryComponent
import com.tangem.features.tangempay.details.impl.R import com.tangem.features.tangempay.details.impl.R
import com.tangem.features.tangempay.entity.CardsProgressBannerUM import com.tangem.features.tangempay.entity.*
import com.tangem.features.tangempay.entity.TangemPayCardUiState
import com.tangem.features.tangempay.entity.TangemPayDetailsBalanceBlockState
import com.tangem.features.tangempay.entity.TangemPayDetailsTopBarConfig
import com.tangem.features.tangempay.entity.TangemPayDetailsUM
import com.tangem.features.tangempay.entity.TangemPayTxHistoryUM
import com.tangem.features.tangempay.ui.components.PayContextMenuBlock import com.tangem.features.tangempay.ui.components.PayContextMenuBlock
import com.tangem.features.tangempay.ui.components.TangemPayActionButton import com.tangem.features.tangempay.ui.components.TangemPayActionButton
import com.tangem.features.tangempay.ui.components.TangemPayAddCardView import com.tangem.features.tangempay.ui.components.TangemPayAddCardView
@ -152,17 +149,20 @@ private fun LazyListScope.payDetailsBody(state: TangemPayDetailsUM) {
} }
state.balanceBlockState.cardsBlockState?.let { cardsState -> state.balanceBlockState.cardsBlockState?.let { cardsState ->
item("cardsBlock") { item("cardsBlock") {
SpacerH12()
CardsBlock(cardsBlockState = cardsState) CardsBlock(cardsBlockState = cardsState)
} }
} }
if (state.balanceBlockState.actionButtons.isNotEmpty()) { if (state.balanceBlockState.actionButtons.isNotEmpty()) {
item("actionButtonsBlock") { item("actionButtonsBlock") {
SpacerH24()
ActionBlock(actionButtons = state.balanceBlockState.actionButtons) ActionBlock(actionButtons = state.balanceBlockState.actionButtons)
} }
} }
if (state.errorNotificationConfig != null) { if (state.errorNotificationConfig != null) {
item("errorSessionBannerBlock") { item("errorSessionBannerBlock") {
SpacerH12()
ErrorMessage( ErrorMessage(
config = state.errorNotificationConfig, config = state.errorNotificationConfig,
modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4), modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4),
@ -175,6 +175,7 @@ private fun LazyListScope.payDetailsBody(state: TangemPayDetailsUM) {
when (progressBanner) { when (progressBanner) {
CardsProgressBannerUM.Reissuing -> { CardsProgressBannerUM.Reissuing -> {
item("reissuingBannerBlock") { item("reissuingBannerBlock") {
SpacerH12()
TangemMessage( TangemMessage(
modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4), modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4),
title = resourceReference(R.string.tangempay_reissue_card_in_progress), title = resourceReference(R.string.tangempay_reissue_card_in_progress),
@ -184,6 +185,7 @@ private fun LazyListScope.payDetailsBody(state: TangemPayDetailsUM) {
} }
CardsProgressBannerUM.Issuing -> { CardsProgressBannerUM.Issuing -> {
item("issuingBannerBlock") { item("issuingBannerBlock") {
SpacerH12()
TangemMessage( TangemMessage(
modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4), modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4),
title = resourceReference(R.string.tangempay_issuing_new_digital_card_title), title = resourceReference(R.string.tangempay_issuing_new_digital_card_title),
@ -203,6 +205,7 @@ private fun LazyListScope.payDetailsBody(state: TangemPayDetailsUM) {
null -> { null -> {
if (state.addToWalletBlockState != null) { if (state.addToWalletBlockState != null) {
item("addToWalletBannerBlock") { item("addToWalletBannerBlock") {
SpacerH12()
TangemPayAddToWalletBlock( TangemPayAddToWalletBlock(
state = state.addToWalletBlockState, state = state.addToWalletBlockState,
modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4), modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4),
@ -211,7 +214,11 @@ private fun LazyListScope.payDetailsBody(state: TangemPayDetailsUM) {
} }
if (state.accountDeactivatedNotificationConfig != null) { if (state.accountDeactivatedNotificationConfig != null) {
item("deactivationBannerBlock") { item("deactivationBannerBlock") {
ErrorMessage(state.accountDeactivatedNotificationConfig) SpacerH12()
ErrorMessage(
config = state.accountDeactivatedNotificationConfig,
modifier = Modifier.padding(horizontal = TangemTheme.dimens2.x4),
)
} }
} }
} }
@ -384,7 +391,7 @@ private fun CardsBlock(
state = rememberLazyListState(), state = rememberLazyListState(),
contentPadding = PaddingValues( contentPadding = PaddingValues(
horizontal = TangemTheme.dimens2.x4, horizontal = TangemTheme.dimens2.x4,
vertical = TangemTheme.dimens2.x6, vertical = TangemTheme.dimens2.x3,
), ),
horizontalArrangement = Arrangement.Center, horizontalArrangement = Arrangement.Center,
) { ) {
@ -415,7 +422,7 @@ private fun LazyItemScope.ActionBlock(
Row( Row(
modifier = modifier modifier = modifier
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = TangemTheme.dimens2.x6), .padding(vertical = TangemTheme.dimens2.x3),
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Center, horizontalArrangement = Arrangement.Center,
) { ) {