Updated on 2026-08-14
This commit is contained in:
parent
8683516c59
commit
c81ba95db0
17 changed files with 827 additions and 10 deletions
|
|
@ -22,6 +22,7 @@ import androidx.compose.ui.draw.clip
|
|||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.layout.layoutId
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
|
|
@ -43,6 +44,7 @@ import com.tangem.core.ui.extensions.stringReference
|
|||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreviewRedesign
|
||||
import com.tangem.core.ui.test.TransactionHistoryItemTestTags
|
||||
|
||||
@Composable
|
||||
fun TransactionItem(state: TransactionItemUM, isBalanceHidden: Boolean, modifier: Modifier = Modifier) {
|
||||
|
|
@ -68,6 +70,7 @@ private fun ContentItem(state: TransactionItemUM.Content, isBalanceHidden: Boole
|
|||
val rowModifier = modifier
|
||||
.fillMaxWidth()
|
||||
.clickable(onClick = state.onClick)
|
||||
.testTag(TransactionHistoryItemTestTags.ITEM)
|
||||
|
||||
TangemRowContainer(
|
||||
modifier = rowModifier,
|
||||
|
|
@ -82,12 +85,15 @@ private fun ContentItem(state: TransactionItemUM.Content, isBalanceHidden: Boole
|
|||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.HEAD)
|
||||
.padding(end = TangemTheme.dimens2.x3)
|
||||
.size(TangemTheme.dimens2.x10),
|
||||
.size(TangemTheme.dimens2.x10)
|
||||
.testTag(TransactionHistoryItemTestTags.STATUS_PREFIX + state.status.testTagSuffix),
|
||||
)
|
||||
TitleText(
|
||||
title = state.title,
|
||||
status = state.status,
|
||||
modifier = Modifier.layoutId(TangemRowLayoutId.START_TOP),
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.START_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.TITLE),
|
||||
)
|
||||
SubtitleText(
|
||||
subtitle = state.subtitle,
|
||||
|
|
@ -100,13 +106,16 @@ private fun ContentItem(state: TransactionItemUM.Content, isBalanceHidden: Boole
|
|||
amount = state.amount,
|
||||
status = state.status,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = Modifier.layoutId(TangemRowLayoutId.END_TOP),
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.AMOUNT),
|
||||
)
|
||||
CurrencyText(
|
||||
symbol = state.currencySymbol,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_BOTTOM)
|
||||
.padding(top = TangemTheme.dimens2.x0_5),
|
||||
.padding(top = TangemTheme.dimens2.x0_5)
|
||||
.testTag(TransactionHistoryItemTestTags.CURRENCY),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -146,6 +155,13 @@ private val Status.iconTint: Color
|
|||
is Status.Failed -> TangemTheme.colors2.markers.iconRed
|
||||
}
|
||||
|
||||
private val Status.testTagSuffix: String
|
||||
get() = when (this) {
|
||||
is Status.Confirmed -> "CONFIRMED"
|
||||
is Status.Unconfirmed -> "UNCONFIRMED"
|
||||
is Status.Failed -> "FAILED"
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
// region Title / Subtitle
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package com.tangem.core.ui.test
|
||||
|
||||
object TransactionHistoryItemTestTags {
|
||||
const val ITEM = "TRANSACTION_HISTORY_ITEM"
|
||||
const val TITLE = "TRANSACTION_HISTORY_ITEM_TITLE"
|
||||
const val AMOUNT = "TRANSACTION_HISTORY_ITEM_AMOUNT"
|
||||
const val CURRENCY = "TRANSACTION_HISTORY_ITEM_CURRENCY"
|
||||
|
||||
/** Status is conveyed visually (icon + color), so it is exposed via a status-suffixed tag. */
|
||||
const val STATUS_PREFIX = "TRANSACTION_HISTORY_ITEM_STATUS_"
|
||||
const val STATUS_CONFIRMED = STATUS_PREFIX + "CONFIRMED"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue