Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-29 19:59:47 +05:00
parent 86b040e421
commit 690f6689dc
10 changed files with 28 additions and 26 deletions

View file

@ -12,6 +12,7 @@ import androidx.compose.ui.tooling.preview.Preview
import com.tangem.core.ui.R
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.test.PopUpMenuTestTags
@ -28,7 +29,7 @@ fun TangemDropdownItem(item: TangemDropdownMenuItem, dismissParent: () -> Unit,
.padding(vertical = TangemTheme.dimens.spacing8, horizontal = TangemTheme.dimens.spacing16)
.testTag(PopUpMenuTestTags.BUTTON),
text = item.title.resolveReference(),
style = TangemTheme.typography.button.copy(color = item.textColorProvider()),
style = TangemTheme.typography.button.copy(color = item.textColor.resolveReference()),
)
}
@ -42,7 +43,7 @@ private fun Preview_TokenDetailsAppBarDropdownItem() {
dismissParent = {},
item = TangemDropdownMenuItem(
title = TextReference.Res(id = R.string.token_details_hide_token),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = { },
),
)

View file

@ -1,11 +1,10 @@
package com.tangem.core.ui.components.dropdownmenu
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import com.tangem.core.ui.extensions.ColorReference
import com.tangem.core.ui.extensions.TextReference
data class TangemDropdownMenuItem(
val title: TextReference,
val textColorProvider: @Composable () -> Color,
val textColor: ColorReference,
val onClick: () -> Unit,
)

View file

@ -28,8 +28,7 @@ internal class TangemPayTxHistoryItemConverter(moshi: Moshi) :
return TangemPayTxHistoryItem.Spend(
id = id,
jsonRepresentation = spendAdapter.toJson(spend),
// If postedAt is null, it means transaction wasn't posted and was likely declined. Use authorizedAt
date = spend.postedAt ?: spend.authorizedAt,
date = spend.authorizedAt,
amount = spend.amount,
currency = Currency.getInstance(spend.currency),
enrichedMerchantName = spend.enrichedMerchantName,

View file

@ -6,6 +6,7 @@ import com.tangem.core.ui.components.containers.pullToRefresh.PullToRefreshConfi
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.res.TangemTheme
import com.tangem.features.tangempay.details.impl.R
import kotlinx.collections.immutable.persistentListOf
@ -24,12 +25,12 @@ internal class TangemPayDetailsStateFactory(
items = persistentListOf(
TangemDropdownMenuItem(
title = TextReference.Res(R.string.tangempay_card_details_change_pin),
textColorProvider = { TangemTheme.colors.text.primary1 },
textColor = themedColor { TangemTheme.colors.text.primary1 },
onClick = onClickChangePin,
),
TangemDropdownMenuItem(
title = TextReference.Res(R.string.tangempay_card_details_freeze_card),
textColorProvider = { TangemTheme.colors.text.primary1 },
textColor = themedColor { TangemTheme.colors.text.primary1 },
onClick = onClickFreezeCard,
),
),

View file

@ -11,6 +11,7 @@ import com.tangem.features.tangempay.utils.TangemPayTxHistoryUiActions
import com.tangem.utils.StringsSigns
import com.tangem.utils.converter.Converter
import com.tangem.utils.extensions.isPositive
import com.tangem.utils.extensions.isZero
import org.joda.time.DateTimeZone
internal class TangemPayTxHistoryItemsConverter(
@ -51,7 +52,11 @@ internal class TangemPayTxHistoryItemsConverter(
}
private fun convertPayment(payment: TangemPayTxHistoryItem.Payment): TangemPayTransactionState.Content.Payment {
val amountPrefix = if (payment.amount.isPositive()) StringsSigns.PLUS else StringsSigns.MINUS
val amountPrefix = when {
payment.amount.isZero() -> ""
payment.amount.isPositive() -> StringsSigns.PLUS
else -> StringsSigns.MINUS
}
val amount = amountPrefix + payment.amount.format {
fiat(fiatCurrencyCode = payment.currency.currencyCode, fiatCurrencySymbol = payment.currency.symbol)
}

View file

@ -6,10 +6,7 @@ import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.components.marketprice.MarketPriceBlockState
import com.tangem.core.ui.components.marketprice.PriceChangeState
import com.tangem.core.ui.components.marketprice.PriceChangeType
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.res.TangemTheme
import com.tangem.feature.tokendetails.presentation.tokendetails.state.*
import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsActionButton
@ -26,7 +23,7 @@ internal object TokenDetailsPreviewData {
persistentListOf(
TangemDropdownMenuItem(
title = TextReference.Res(id = R.string.token_details_hide_token),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = { },
),
),

View file

@ -7,6 +7,7 @@ import com.tangem.core.ui.components.marketprice.MarketPriceBlockState
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.networkIconResId
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.res.TangemTheme
import com.tangem.domain.models.currency.CryptoCurrency
import com.tangem.domain.models.network.Network
@ -83,7 +84,7 @@ internal class TokenDetailsSkeletonStateConverter(
addGenerateXPubMenuItem(cryptoCurrency)
TangemDropdownMenuItem(
title = TextReference.Res(id = R.string.token_details_hide_token),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = clickIntents::onHideClick,
).let(::add)
}.toImmutableList(),
@ -102,7 +103,7 @@ internal class TokenDetailsSkeletonStateConverter(
add(
TangemDropdownMenuItem(
title = resourceReference(R.string.token_details_generate_xpub),
textColorProvider = { TangemTheme.colors.text.primary1 },
textColor = themedColor { TangemTheme.colors.text.primary1 },
onClick = clickIntents::onGenerateExtendedKey,
),
)

View file

@ -8,6 +8,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.res.TangemTheme
import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.card.common.util.cardTypesResolver
@ -345,13 +346,13 @@ internal class TokenDetailsStateFactory(
if (isSupported && hasDerivations) {
TangemDropdownMenuItem(
title = resourceReference(R.string.token_details_generate_xpub),
textColorProvider = { TangemTheme.colors.text.primary1 },
textColor = themedColor { TangemTheme.colors.text.primary1 },
onClick = clickIntents::onGenerateExtendedKey,
).let(::add)
}
TangemDropdownMenuItem(
title = TextReference.Res(id = R.string.token_details_hide_token),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = clickIntents::onHideClick,
).let(::add)
}.toImmutableList(),

View file

@ -13,6 +13,7 @@ import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.message.DialogMessage
import com.tangem.core.ui.message.EventMessageAction
import com.tangem.core.ui.message.SnackbarMessage
@ -139,7 +140,7 @@ internal class WcConnectionsModel @Inject constructor(
),
disconnectAllItem = TangemDropdownMenuItem(
title = resourceReference(R.string.wc_disconnect_all),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = ::showDisconnectAllDialog,
),
),

View file

@ -3,12 +3,9 @@ package com.tangem.features.walletconnect.connections.ui.preview
import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.themedColor
import com.tangem.core.ui.res.TangemTheme
import com.tangem.features.walletconnect.connections.entity.VerifiedDAppState
import com.tangem.features.walletconnect.connections.entity.WcConnectedAppInfo
import com.tangem.features.walletconnect.connections.entity.WcConnectionsState
import com.tangem.features.walletconnect.connections.entity.WcConnectionsTopAppBarConfig
import com.tangem.features.walletconnect.connections.entity.WcConnectionsUM
import com.tangem.features.walletconnect.connections.entity.*
import com.tangem.features.walletconnect.impl.R
import kotlinx.collections.immutable.persistentListOf
import timber.log.Timber
@ -124,7 +121,7 @@ internal object WcConnectionsPreviewData {
),
disconnectAllItem = TangemDropdownMenuItem(
title = resourceReference(R.string.wc_disconnect_all),
textColorProvider = { TangemTheme.colors.text.warning },
textColor = themedColor { TangemTheme.colors.text.warning },
onClick = { },
),
),