Updated on 2026-08-14

This commit is contained in:
Tangem 2024-04-27 15:35:08 +03:00
parent b96f007568
commit fa7a381e04
131 changed files with 736 additions and 1778 deletions

View file

@ -1,5 +1,6 @@
package com.tangem.feature.tokendetails.presentation.tokendetails.ui
import android.content.res.Configuration
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Box
@ -39,6 +40,7 @@ import com.tangem.core.ui.event.StateEvent
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsState
import com.tangem.feature.tokendetails.presentation.tokendetails.state.components.TokenDetailsNotification
@ -184,21 +186,12 @@ internal fun TokenDetailsEventEffect(snackbarHostState: SnackbarHostState, event
// region Preview
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun TokenDetailsScreenPreview_Light(
private fun TokenDetailsScreenPreview(
@PreviewParameter(TokenDetailsScreenParameterProvider::class) state: TokenDetailsState,
) {
TangemTheme {
TokenDetailsScreen(state)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun TokenDetailsScreenPreview_Dark(
@PreviewParameter(TokenDetailsScreenParameterProvider::class) state: TokenDetailsState,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
TokenDetailsScreen(state)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components
import android.content.res.Configuration
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
@ -14,6 +15,7 @@ import com.tangem.common.Strings.STARS
import com.tangem.core.ui.components.RectangleShimmer
import com.tangem.core.ui.components.buttons.HorizontalActionChips
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.utils.BigDecimalFormatter
import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsBalanceBlockState
@ -129,21 +131,12 @@ private fun CryptoBalance(
}
@Preview(widthDp = 328, heightDp = 152)
@Preview(widthDp = 328, heightDp = 152, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_TokenDetailsBalanceBlock_LightTheme(
private fun Preview_TokenDetailsBalanceBlock(
@PreviewParameter(TokenDetailsBalanceBlockStateProvider::class) state: TokenDetailsBalanceBlockState,
) {
TangemTheme(isDark = false) {
TokenDetailsBalanceBlock(state = state, isBalanceHidden = false)
}
}
@Preview(widthDp = 328, heightDp = 152)
@Composable
private fun Preview_TokenDetailsBalanceBlock_DarkTheme(
@PreviewParameter(TokenDetailsBalanceBlockStateProvider::class) state: TokenDetailsBalanceBlockState,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
TokenDetailsBalanceBlock(state = state, isBalanceHidden = false)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components
import android.content.res.Configuration
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
@ -18,6 +19,7 @@ import androidx.compose.ui.util.fastForEach
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsAppBarMenuConfig
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsTopAppBarConfig
@ -96,9 +98,10 @@ private fun AppBarDropdownItem(
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_TokenDetailsAppBarDropdownItem_LightTheme() {
TangemTheme(isDark = false) {
private fun Preview_TokenDetailsAppBarDropdownItem() {
TangemThemePreview {
AppBarDropdownItem(
modifier = Modifier.background(TangemTheme.colors.background.primary),
dismissParent = {},
@ -112,33 +115,10 @@ private fun Preview_TokenDetailsAppBarDropdownItem_LightTheme() {
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_TokenDetailsAppBarDropdownItem_DarkTheme() {
TangemTheme(isDark = true) {
AppBarDropdownItem(
modifier = Modifier.background(TangemTheme.colors.background.primary),
dismissParent = {},
item = TokenDetailsAppBarMenuConfig.MenuItem(
title = TextReference.Res(id = R.string.token_details_hide_token),
textColorProvider = { TangemTheme.colors.text.warning },
onClick = { },
),
)
}
}
@Preview
@Composable
private fun Preview_TokenDetailsTopAppBar_LightTheme() {
TangemTheme(isDark = false) {
TokenDetailsTopAppBar(config = TokenDetailsPreviewData.tokenDetailsTopAppBarConfig)
}
}
@Preview
@Composable
private fun Preview_TokenDetailsTopAppBar_DarkTheme() {
TangemTheme(isDark = true) {
private fun Preview_TokenDetailsTopAppBar() {
TangemThemePreview {
TokenDetailsTopAppBar(config = TokenDetailsPreviewData.tokenDetailsTopAppBarConfig)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components
import android.content.res.Configuration
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material.Text
@ -18,6 +19,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.tokendetails.presentation.tokendetails.TokenDetailsPreviewData
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenInfoBlockState
import com.tangem.features.tokendetails.impl.R
@ -136,23 +138,13 @@ private val GrayscaleColorFilter: ColorFilter
get() = ColorFilter.colorMatrix(ColorMatrix().apply { setToSaturation(GRAY_SCALE_SATURATION) })
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_TokenInfoBlock_LightTheme(
private fun Preview_TokenInfoBlock(
@PreviewParameter(TokenInfoStateProvider::class)
state: TokenInfoBlockState,
) {
TangemTheme(isDark = false) {
TokenInfoBlock(state, Modifier.background(TangemTheme.colors.background.secondary))
}
}
@Preview
@Composable
private fun Preview_TokenInfoBlock_DarkTheme(
@PreviewParameter(TokenInfoStateProvider::class)
state: TokenInfoBlockState,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
TokenInfoBlock(state, Modifier.background(TangemTheme.colors.background.secondary))
}
}

View file

@ -22,6 +22,7 @@ import com.tangem.core.ui.R
import com.tangem.core.ui.components.inputrow.InputRowBestRate
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
@Composable
internal fun ExchangeProvider(
@ -90,7 +91,7 @@ internal fun ExchangeProvider(
@Preview(showBackground = true)
@Composable
private fun ExchangeProvider_Preview() {
TangemTheme(isDark = false) {
TangemThemePreview(isDark = false) {
ExchangeProvider(
providerName = TextReference.Str("Changelly"),
providerType = TextReference.Str("CEX"),

View file

@ -1,5 +1,6 @@
package com.tangem.feature.tokendetails.presentation.tokendetails.ui.components.exchange
import android.content.res.Configuration
import androidx.annotation.DrawableRes
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
@ -25,6 +26,7 @@ import com.tangem.core.ui.components.atoms.text.TextEllipsis
import com.tangem.core.ui.components.currency.tokenicon.TokenIcon
import com.tangem.core.ui.components.currency.tokenicon.TokenIconState
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.swap.domain.models.domain.ExchangeStatus
import com.tangem.feature.tokendetails.presentation.tokendetails.state.SwapTransactionsState
import com.tangem.features.tokendetails.impl.R
@ -195,31 +197,12 @@ private fun ExchangeStatusItem(
//region Preview
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun ExchangeStatusItemPreview_Light(
private fun ExchangeStatusItemPreview(
@PreviewParameter(ExchangeStatusItemsPreviewParameterProvider::class) amount: String,
) {
TangemTheme {
ExchangeStatusItem(
providerName = "ChangeNow",
fromTokenIconState = TokenIconState.Loading,
toTokenIconState = TokenIconState.Loading,
fromAmount = amount,
fromSymbol = "USDT",
toSymbol = "USDT",
onClick = {},
infoIconRes = null,
infoIconTint = null,
)
}
}
@Preview
@Composable
private fun ExchangeStatusItemPreview_Dark(
@PreviewParameter(ExchangeStatusItemsPreviewParameterProvider::class) amount: String,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
ExchangeStatusItem(
providerName = "ChangeNow",
fromTokenIconState = TokenIconState.Loading,