Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-17 13:56:42 +04:00
parent 75802c1551
commit 1ca2672884
42 changed files with 160 additions and 625 deletions

View file

@ -395,7 +395,7 @@ internal class AddToPortfolioModel @Inject constructor(
currency = addedToken.currency,
accountId = selectedPortfolio.account.account.account.accountId,
).onEach { state ->
val requestedQuickActions = toQuickActions(state.states, isRedesignEnabled = true)
val requestedQuickActions = toQuickActions(state.states)
when {
requestedQuickActions.isNotEmpty() -> {
timerJob.cancel()

View file

@ -10,7 +10,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.key
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -36,7 +35,6 @@ import com.tangem.core.ui.ds.row.TangemRowContainer
import com.tangem.core.ui.ds.row.TangemRowLayoutId
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.res.TangemThemePreviewRedesign
@ -220,11 +218,9 @@ private fun Preview(@PreviewParameter(ChooseNetworkContentProvider::class) conte
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
private fun PreviewV2(@PreviewParameter(ChooseNetworkContentProvider::class) content: ChooseNetworkUM) {
TangemThemePreviewRedesign {
CompositionLocalProvider(LocalRedesignEnabled provides true) {
ChooseNetworkContent(
state = content,
)
}
ChooseNetworkContent(
state = content,
)
}
}

View file

@ -77,7 +77,7 @@ import com.tangem.core.ui.ds.row.token.internal.TokenRowTitle
import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.res.TangemColorPalette
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.core.ui.test.BuyTokenScreenTestTags
import com.tangem.core.ui.utils.ProvideSharedTransitionScope
import com.tangem.core.ui.utils.TangemSharedTransitionLayout
@ -851,7 +851,7 @@ private fun LazyListScope.tokensNotFound(modifier: Modifier = Modifier) {
@Preview
@Composable
private fun TokenScreenPreview(@PreviewParameter(ChooseTokenScreenPreviewProvider::class) state: ChooseTokenFullUM) {
TangemThemePreview {
TangemThemePreviewRedesign {
ChooseTokenScreen(
state = state,
modifier = Modifier,

View file

@ -4,7 +4,6 @@ import android.content.res.Configuration
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
@ -14,7 +13,6 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetType
import com.tangem.core.ui.ds2.topnavigation.TangemTopNavigation
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.res.TangemThemePreviewRedesign
@ -73,13 +71,11 @@ private fun Preview(@PreviewParameter(PortfolioSelectorPreviewStateProvider::cla
@Composable
private fun PreviewV2(@PreviewParameter(PortfolioSelectorPreviewStateProvider::class) params: PortfolioSelectorUM) {
TangemThemePreviewRedesign {
CompositionLocalProvider(LocalRedesignEnabled provides true) {
PortfolioSelectorBS(
state = params,
onDismiss = {},
modifier = Modifier,
onBack = {},
)
}
PortfolioSelectorBS(
state = params,
onDismiss = {},
modifier = Modifier,
onBack = {},
)
}
}

View file

@ -32,7 +32,6 @@ import com.tangem.core.ui.ds.row.TangemRowLayoutId
import com.tangem.core.ui.extensions.conditional
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.res.LocalCanScrollBackward
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.features.commonfeatures.impl.portfolioselector.entity.PortfolioSelectorItemUM
@ -218,16 +217,14 @@ private fun WalletNameRow(model: PortfolioSelectorItemUM.GroupTitle, modifier: M
@Composable
private fun Preview(@PreviewParameter(PortfolioSelectorPreviewStateProvider::class) params: PortfolioSelectorUM) {
TangemThemePreviewRedesign {
CompositionLocalProvider(LocalRedesignEnabled provides true) {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center,
) {
PortfolioSelectorContentV2(
state = params,
modifier = Modifier.background(color = TangemTheme.colors.background.tertiary),
)
}
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center,
) {
PortfolioSelectorContentV2(
state = params,
modifier = Modifier.background(color = TangemTheme.colors.background.tertiary),
)
}
}
}

View file

@ -85,7 +85,6 @@ internal class TokenActionsUiBuilder @Inject constructor(
quickActions = quickActions(
cryptoData = cryptoCurrencyData,
tokenActionsHandler = tokenActionsHandler,
isRedesignEnabled = true,
context = params.context,
),
bottomActionText = bottomActionText(bottomAction),

View file

@ -229,17 +229,15 @@ private fun WalletPortfolioRow(name: TextReference, deviceIcon: DeviceIconUM, mo
@Composable
private fun Preview(@PreviewParameter(TokenActionsContentPreviewProviderV2::class) state: TokenActionsUM) {
TangemThemePreviewRedesign {
CompositionLocalProvider(LocalRedesignEnabled provides true) {
Box(
modifier = Modifier
.fillMaxWidth()
.background(TangemTheme.colors2.surface.level2)
.padding(horizontal = 16.dp),
) {
TokenActionsContentV2(
state = state,
)
}
Box(
modifier = Modifier
.fillMaxWidth()
.background(TangemTheme.colors2.surface.level2)
.padding(horizontal = 16.dp),
) {
TokenActionsContentV2(
state = state,
)
}
}
}

View file

@ -25,7 +25,6 @@ import com.tangem.core.ui.components.pager.PagerIndicator
import com.tangem.core.ui.ds.message.TangemMessage
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.features.promobanners.api.PromoBannersBlockComponent.Placeholder
import com.tangem.features.promobanners.impl.model.PromoBannerNotificationUM
@ -243,19 +242,6 @@ private fun previewState(bannerCount: Int) = PromoBannersBlockUM(
onPageChanged = {},
)
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_PromoBannersBlock_Legacy() {
TangemThemePreview {
PromoBannersBlock(
state = previewState(bannerCount = 2),
horizontalItemPadding = 12.dp,
modifier = Modifier.padding(vertical = 16.dp),
)
}
}
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable

View file

@ -2,7 +2,7 @@ package com.tangem.features.tangempay.components.express
import androidx.compose.foundation.lazy.LazyListScope
import androidx.compose.ui.Modifier
import com.tangem.common.ui.expressStatus.expressTransactionsItemsLegacy
import com.tangem.common.ui.expressStatus.expressTransactionsItems
import com.tangem.common.ui.expressStatus.state.*
import com.tangem.core.ui.components.currency.icon.CurrencyIconState
import com.tangem.core.ui.extensions.TextReference
@ -17,18 +17,11 @@ internal class PreviewEmptyExpressTransactionsComponent : ExpressTransactionsCom
override val state: StateFlow<ExpressTransactionsBlockState> = MutableStateFlow(getInitialState())
override fun LazyListScope.expressTransactionsContentLegacy(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,
) {
expressTransactionsItemsLegacy(expressTxs = state, modifier = modifier)
}
override fun LazyListScope.expressTransactionsContent(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,
) {
expressTransactionsItemsLegacy(expressTxs = state, modifier = modifier)
expressTransactionsItems(expressTxs = state, modifier = modifier)
}
private fun getInitialState(): ExpressTransactionsBlockState {

View file

@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.key
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -26,8 +25,6 @@ import com.tangem.core.ui.ds2.button.TangemButton
import com.tangem.core.ui.extensions.TextReference.Res
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.LocalVisaRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.core.ui.res.generated.icons.Icons
@ -126,40 +123,35 @@ private fun TangemPayTopUpItem(state: TangemPayAddFundsItemUM, modifier: Modifie
@Composable
private fun TangemPayAddFundsContentPreview() {
TangemThemePreviewRedesign {
CompositionLocalProvider(
LocalVisaRedesignEnabled provides true,
LocalRedesignEnabled provides true,
) {
TangemPayAddFundsContentV2(
state = TangemPayAddFundsUM(
items = persistentListOf(
TangemPayAddFundsItemUM(
icon = TangemIconUM.Icon(
imageVector = Icons.ic_logo_tangem_20,
tintReference = {
TangemTheme.colors3.icon.brand
},
),
title = Res(R.string.common_exchange),
description = Res(R.string.exсhange_token_description),
onClick = {},
),
TangemPayAddFundsItemUM(
icon = TangemIconUM.Icon(
imageVector = Icons.ic_card_20,
tintReference = {
TangemTheme.colors3.icon.brand
},
),
title = Res(R.string.common_receive),
description = Res(R.string.receive_token_description),
onClick = {},
TangemPayAddFundsContentV2(
state = TangemPayAddFundsUM(
items = persistentListOf(
TangemPayAddFundsItemUM(
icon = TangemIconUM.Icon(
imageVector = Icons.ic_logo_tangem_20,
tintReference = {
TangemTheme.colors3.icon.brand
},
),
title = Res(R.string.common_exchange),
description = Res(R.string.exсhange_token_description),
onClick = {},
),
TangemPayAddFundsItemUM(
icon = TangemIconUM.Icon(
imageVector = Icons.ic_card_20,
tintReference = {
TangemTheme.colors3.icon.brand
},
),
title = Res(R.string.common_receive),
description = Res(R.string.receive_token_description),
onClick = {},
),
dismiss = {},
errorMessage = null,
),
)
}
dismiss = {},
errorMessage = null,
),
)
}
}

View file

@ -319,18 +319,14 @@ private fun previewCardDetailsState(): TangemPayCardDetailsUM = TangemPayCardDet
@Composable
private fun TangemPayCardPageScreenPreviewV2() {
TangemThemePreviewRedesign {
CompositionLocalProvider(
LocalRedesignEnabled provides true,
) {
TangemPayCardPageScreen(
state = TangemPayCardPageUM.stub(),
cardSection = {
TangemPayCard(
state = previewCardDetailsState(),
modifier = Modifier.padding(horizontal = 16.dp),
)
},
)
}
TangemPayCardPageScreen(
state = TangemPayCardPageUM.stub(),
cardSection = {
TangemPayCard(
state = previewCardDetailsState(),
modifier = Modifier.padding(horizontal = 16.dp),
)
},
)
}
}

View file

@ -8,7 +8,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@ -193,16 +192,12 @@ private fun SubtitleLimit(state: TangemPayDailyLimitBlockState, modifier: Modifi
@Composable
private fun PreviewV2() {
TangemThemePreviewRedesign {
CompositionLocalProvider(
LocalRedesignEnabled provides true,
Column(
verticalArrangement = Arrangement.spacedBy(16.dp),
) {
Column(
verticalArrangement = Arrangement.spacedBy(16.dp),
) {
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Content.stub())
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Error(onReloadClick = {}))
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Loading)
}
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Content.stub())
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Error(onReloadClick = {}))
TangemPayDailyLimitBlock(state = TangemPayDailyLimitBlockState.Loading)
}
}
}

View file

@ -3,10 +3,8 @@ package com.tangem.features.tangempay.component
import androidx.compose.foundation.lazy.LazyListScope
import androidx.compose.ui.Modifier
import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.features.tangempay.entity.TangemPayMainUM
import com.tangem.features.tangempay.ui.TangemPayMainBlockContent
import com.tangem.features.tangempay.ui.TangemPayMainBlockItem
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@ -28,11 +26,7 @@ internal class DefaultTangemPayMainBlockComponent @AssistedInject constructor(
key = TANGEM_PAY_ACCOUNT_CONTENT_TYPE,
contentType = TANGEM_PAY_ACCOUNT_CONTENT_TYPE,
) {
if (LocalRedesignEnabled.current) {
TangemPayMainBlockContent(state, isBalanceHidden, modifier)
} else {
TangemPayMainBlockItem(state, isBalanceHidden, modifier)
}
TangemPayMainBlockContent(state, isBalanceHidden, modifier)
}
}

View file

@ -31,7 +31,6 @@ import com.tangem.core.ui.components.text.applyBladeBrush
import com.tangem.core.ui.ds.row.TangemRowContainer
import com.tangem.core.ui.ds.row.TangemRowLayoutId
import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.core.ui.test.TangemPayTestTags
@ -284,8 +283,7 @@ private fun TangemPayMainLoading(modifier: Modifier = Modifier) {
@Composable
private fun getVisaIconPainter(): Painter {
val resource = if (LocalRedesignEnabled.current) R.drawable.ic_visa_in_banner else R.drawable.img_visa_36
return painterResource(resource)
return painterResource(R.drawable.ic_visa_in_banner)
}
// region Preview

View file

@ -16,11 +16,6 @@ interface ExpressTransactionsComponent {
val state: StateFlow<ExpressTransactionsBlockState>
fun LazyListScope.expressTransactionsContentLegacy(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,
)
fun LazyListScope.expressTransactionsContent(state: PersistentList<ExpressTransactionStateUM>, modifier: Modifier)
data class Params(

View file

@ -5,7 +5,6 @@ import androidx.compose.runtime.Stable
import androidx.compose.ui.Modifier
import com.arkivanov.essenty.lifecycle.subscribe
import com.tangem.common.ui.expressStatus.expressTransactionsItems
import com.tangem.common.ui.expressStatus.expressTransactionsItemsLegacy
import com.tangem.common.ui.expressStatus.state.ExpressTransactionStateUM
import com.tangem.common.ui.expressStatus.state.ExpressTransactionsBlockState
import com.tangem.core.decompose.context.AppComponentContext
@ -34,13 +33,6 @@ internal class DefaultExpressTransactionsComponent @AssistedInject constructor(
)
}
override fun LazyListScope.expressTransactionsContentLegacy(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,
) {
expressTransactionsItemsLegacy(expressTxs = state, modifier = modifier)
}
override fun LazyListScope.expressTransactionsContent(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,

View file

@ -348,11 +348,6 @@ private val PreviewExpressTransactionsComponent = object : ExpressTransactionsCo
),
)
override fun LazyListScope.expressTransactionsContentLegacy(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,
) = Unit
override fun LazyListScope.expressTransactionsContent(
state: PersistentList<ExpressTransactionStateUM>,
modifier: Modifier,

View file

@ -17,7 +17,6 @@ import com.tangem.core.ui.ds.button.TangemButtonSize
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.LocalHazeState
import com.tangem.core.ui.res.LocalRedesignEnabled
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TransferUM
@ -143,13 +142,11 @@ private fun TailLoader() {
@Composable
private fun Preview(@PreviewParameter(TransferPreviewProvider::class) state: TransferUM) {
TangemThemePreviewRedesign {
CompositionLocalProvider(LocalRedesignEnabled provides true) {
TransferBottomSheetContent(
state = state,
onCloseClick = {},
modifier = Modifier.padding(horizontal = 16.dp),
)
}
TransferBottomSheetContent(
state = state,
onCloseClick = {},
modifier = Modifier.padding(horizontal = 16.dp),
)
}
}

View file

@ -467,7 +467,6 @@ private fun DescriptionWithMoreBlock(
.padding(horizontal = 12.dp),
description = model.text,
hasFullDescription = true,
textStyle = TangemTheme.typography.caption2,
onReadMoreClick = onDescriptionClick,
)
}

View file

@ -46,7 +46,7 @@ internal class WcConnectionsComponent(
WcConnectionsContent(modifier = modifier, state = state, snackbarHostState = snackbarHostState)
EventMessageEffect(messageHandler = messageHandler, snackbarHostState = snackbarHostState)
EventMessageEffect(messageHandler = messageHandler)
bottomSheet.child?.instance?.BottomSheet()
}