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.wallet.presentation.common.component
import android.content.res.Configuration
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Icon
@ -13,6 +14,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.wallet.impl.R
import org.burnoutcrew.reorderable.ReorderableLazyListState
import org.burnoutcrew.reorderable.detectReorder
@ -92,17 +94,10 @@ private fun NetworkGroupItemSample(isDraggable: Boolean) {
}
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun NetworkGroupItemPreview_Light(@PreviewParameter(NetworkGroupProvider::class) isDraggable: Boolean) {
TangemTheme {
NetworkGroupItemSample(isDraggable)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun NetworkGroupItemPreview_Dark(@PreviewParameter(NetworkGroupProvider::class) isDraggable: Boolean) {
TangemTheme(isDark = true) {
private fun NetworkGroupItemPreview(@PreviewParameter(NetworkGroupProvider::class) isDraggable: Boolean) {
TangemThemePreview {
NetworkGroupItemSample(isDraggable)
}
}

View file

@ -20,6 +20,7 @@ import com.tangem.core.ui.components.currency.tokenicon.TokenIcon
import com.tangem.core.ui.components.marketprice.PriceChangeType
import com.tangem.core.ui.extensions.rememberHapticFeedback
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.common.component.token.*
import com.tangem.feature.wallet.presentation.common.state.TokenItemState
@ -392,7 +393,7 @@ private fun calculateLayoutHeight(
@Preview(widthDp = 360)
@Composable
private fun Preview_TokenItem_InLight(@PreviewParameter(TokenItemStateProvider::class) state: TokenItemState) {
TangemTheme(isDark = false) {
TangemThemePreview(isDark = false) {
TokenItem(state = state, isBalanceHidden = false)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.organizetokens
import android.content.res.Configuration
import androidx.activity.compose.BackHandler
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.foundation.background
@ -34,6 +35,7 @@ import com.tangem.core.ui.components.buttons.actions.RoundedActionButton
import com.tangem.core.ui.event.EventEffect
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.common.component.DraggableNetworkGroupItem
@ -373,21 +375,12 @@ private fun getItemShape(roundingMode: DraggableItem.RoundingMode, radius: Dp):
// region Preview
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun OrganizeTokensScreenPreview_Light(
private fun OrganizeTokensScreenPreview(
@PreviewParameter(OrganizeTokensStateProvider::class) state: OrganizeTokensState,
) {
TangemTheme {
OrganizeTokensScreen(state)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun OrganizeTokensScreenPreview_Dark(
@PreviewParameter(OrganizeTokensStateProvider::class) state: OrganizeTokensState,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
OrganizeTokensScreen(state)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components
import android.content.res.Configuration
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
@ -14,6 +15,7 @@ import com.tangem.core.ui.components.getDefaultRowColors
import com.tangem.core.ui.components.getWarningRowColors
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.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.wallet.state.model.ActionsBottomSheetConfig
import com.tangem.feature.wallet.presentation.wallet.state.model.TokenActionButtonConfig
@ -49,24 +51,13 @@ private fun ActionsBottomSheetContent(actions: ImmutableList<TokenActionButtonCo
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun ActionsBottomSheetContent_Light(
@PreviewParameter(ActionsBottomSheetContentConfigProvider::class)
config: ActionsBottomSheetConfig,
) {
TangemTheme(isDark = false) {
// Use preview of content because ModalBottomSheet isn't supported in Preview mode
ActionsBottomSheetContent(actions = config.actions)
}
}
@Preview
@Composable
private fun ActionsBottomSheetContent_Dark(
@PreviewParameter(ActionsBottomSheetContentConfigProvider::class)
config: ActionsBottomSheetConfig,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
// Use preview of content because ModalBottomSheet isn't supported in Preview mode
ActionsBottomSheetContent(actions = config.actions)
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components
import android.content.res.Configuration
import androidx.compose.animation.core.*
import androidx.compose.animation.rememberSplineBasedDecay
import androidx.compose.foundation.ExperimentalFoundationApi
@ -23,6 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletCardState
import com.tangem.feature.wallet.presentation.wallet.ui.components.common.WalletCard
@ -99,21 +101,10 @@ private fun rememberWalletsFlingBehaviour(lazyListState: LazyListState, itemWidt
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_WalletsList_LightTheme() {
TangemTheme(isDark = false) {
WalletsList(
lazyListState = rememberLazyListState(),
wallets = WalletPreviewData.wallets.values.toPersistentList(),
isBalanceHidden = false,
)
}
}
@Preview
@Composable
private fun Preview_WalletsList_DarkTheme() {
TangemTheme(isDark = true) {
private fun Preview_WalletsList() {
TangemThemePreview {
WalletsList(
lazyListState = rememberLazyListState(),
wallets = WalletPreviewData.wallets.values.toPersistentList(),

View file

@ -19,6 +19,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
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.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletBottomSheetConfig
@ -120,7 +121,7 @@ private fun WalletBottomSheetContent_Light(
@PreviewParameter(WalletBottomSheetConfigProvider::class)
config: WalletBottomSheetConfig,
) {
TangemTheme(isDark = false) {
TangemThemePreview(isDark = false) {
// Use preview of content because ModalBottomSheet isn't supported in Preview mode
BottomSheetContent(config = config)
}
@ -132,7 +133,7 @@ private fun WalletBottomSheetContent_Dark(
@PreviewParameter(WalletBottomSheetConfigProvider::class)
config: WalletBottomSheetConfig,
) {
TangemTheme(isDark = false) {
TangemThemePreview(isDark = false) {
// Use preview of content because ModalBottomSheet isn't supported in Preview mode
BottomSheetContent(config = config)
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components.common
import android.content.res.Configuration
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.animation.*
@ -49,6 +50,7 @@ import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.res.TangemDimens
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletCardState
@ -387,20 +389,13 @@ private fun Image(@DrawableRes id: Int?, modifier: Modifier = Modifier) {
// region Preview
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_WalletCard_LightTheme(
private fun Preview_WalletCard(
@PreviewParameter(WalletCardStateProvider::class)
state: WalletCardState,
) {
TangemTheme(isDark = false) {
WalletCard(state = state, isBalanceHidden = false)
}
}
@Preview
@Composable
private fun Preview_WalletCard_DarkTheme(@PreviewParameter(WalletCardStateProvider::class) state: WalletCardState) {
TangemTheme(isDark = true) {
TangemThemePreview {
WalletCard(state = state, isBalanceHidden = false)
}
}

View file

@ -1,10 +1,12 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components.common
import android.content.res.Configuration
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.common.WalletPreviewData
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletTopBarConfig
@ -36,17 +38,10 @@ internal fun WalletTopBar(config: WalletTopBarConfig) {
}
@Preview
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun Preview_WalletTopBar_LightTheme() {
TangemTheme(isDark = false) {
WalletTopBar(config = WalletPreviewData.topBarConfig)
}
}
@Preview
@Composable
private fun Preview_WalletTopBar_DarkTheme() {
TangemTheme(isDark = true) {
private fun Preview_WalletTopBar() {
TangemThemePreview {
WalletTopBar(config = WalletPreviewData.topBarConfig)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components.visa
import android.content.res.Configuration
import androidx.compose.animation.AnimatedContent
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyListScope
@ -18,6 +19,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider
import com.tangem.core.ui.components.RectangleShimmer
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.wallet.state.model.BalancesAndLimitsBlockState
@ -158,21 +160,12 @@ private fun AvailableLimit(availableBalance: String, limitDays: Int, modifier: M
// region Preview
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun BalancesAndLimitsBlockPreview_Light(
private fun BalancesAndLimitsBlockPreview(
@PreviewParameter(BalancesAndLimitsBlockParameterProvider::class) state: BalancesAndLimitsBlockState,
) {
TangemTheme {
BalancesAndLimitsBlock(state)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun BalancesAndLimitsBlockPreview_Dark(
@PreviewParameter(BalancesAndLimitsBlockParameterProvider::class) state: BalancesAndLimitsBlockState,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
BalancesAndLimitsBlock(state)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components.visa
import android.content.res.Configuration
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Icon
@ -17,6 +18,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.wallet.state.model.BalancesAndLimitsBottomSheetConfig
@ -159,21 +161,12 @@ private inline fun ContentContainer(
// region Preview
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun BalancesAndLimitsBottomSheetPreview_Light(
private fun BalancesAndLimitsBottomSheetPreview(
@PreviewParameter(BalancesAndLimitsBottomSheetParameterProvider::class) state: BalancesAndLimitsBottomSheetConfig,
) {
TangemTheme {
BalancesAndLimitsContent(state)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun BalancesAndLimitsBottomSheetPreview_Dark(
@PreviewParameter(BalancesAndLimitsBottomSheetParameterProvider::class) state: BalancesAndLimitsBottomSheetConfig,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
BalancesAndLimitsContent(state)
}
}

View file

@ -1,5 +1,6 @@
package com.tangem.feature.wallet.presentation.wallet.ui.components.visa
import android.content.res.Configuration
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
@ -19,6 +20,7 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.wallet.impl.R
import com.tangem.feature.wallet.presentation.wallet.state.model.VisaTxDetailsBottomSheetConfig
import kotlinx.collections.immutable.persistentListOf
@ -213,21 +215,12 @@ private fun ContentContainer(
// region Preview
@Preview(showBackground = true, widthDp = 360)
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable
private fun VisaTxDetailsBottomSheetPreview_Light(
private fun VisaTxDetailsBottomSheetPreview(
@PreviewParameter(VisaTxDetailsBottomSheetParameterProvider::class) state: VisaTxDetailsBottomSheetConfig,
) {
TangemTheme {
VisaTxDetailsBottomSheetContent(state)
}
}
@Preview(showBackground = true, widthDp = 360)
@Composable
private fun VisaTxDetailsBottomSheetPreview_Dark(
@PreviewParameter(VisaTxDetailsBottomSheetParameterProvider::class) state: VisaTxDetailsBottomSheetConfig,
) {
TangemTheme(isDark = true) {
TangemThemePreview {
VisaTxDetailsBottomSheetContent(state)
}
}