Updated on 2026-08-14
This commit is contained in:
parent
24d163b5e7
commit
f21da4c520
13 changed files with 86 additions and 107 deletions
|
|
@ -4,7 +4,7 @@ import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||||
import com.tangem.common.BaseTestCase
|
import com.tangem.common.BaseTestCase
|
||||||
import com.tangem.core.ui.test.BaseBottomSheetTestTags
|
import com.tangem.core.ui.test.BaseBottomSheetTestTags
|
||||||
import com.tangem.core.ui.test.BaseButtonTestTags
|
import com.tangem.core.ui.test.BaseButtonTestTags
|
||||||
import com.tangem.core.ui.test.SendSelectNetworkFeeBottomSheetTestTags
|
import com.tangem.core.ui.test.SelectNetworkFeeBottomSheetTestTags
|
||||||
import com.tangem.wallet.R
|
import com.tangem.wallet.R
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
||||||
|
|
@ -16,12 +16,6 @@ import androidx.compose.ui.test.hasText as withText
|
||||||
class SendSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
class SendSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
||||||
ComposeScreen<SendSelectNetworkFeeBottomSheetPageObject>(semanticsProvider = semanticsProvider) {
|
ComposeScreen<SendSelectNetworkFeeBottomSheetPageObject>(semanticsProvider = semanticsProvider) {
|
||||||
|
|
||||||
val title: KNode = child {
|
|
||||||
hasTestTag(BaseBottomSheetTestTags.TITLE)
|
|
||||||
hasText(getResourceString(R.string.common_network_fee_title))
|
|
||||||
useUnmergedTree = true
|
|
||||||
}
|
|
||||||
|
|
||||||
val chooseSpeedTitle: KNode = child {
|
val chooseSpeedTitle: KNode = child {
|
||||||
hasTestTag(BaseBottomSheetTestTags.TITLE)
|
hasTestTag(BaseBottomSheetTestTags.TITLE)
|
||||||
hasText(getResourceString(R.string.fee_selector_choose_speed_title))
|
hasText(getResourceString(R.string.fee_selector_choose_speed_title))
|
||||||
|
|
@ -29,38 +23,38 @@ class SendSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNode
|
||||||
}
|
}
|
||||||
|
|
||||||
fun regularFeeSelectorItem(title: String): KNode = child {
|
fun regularFeeSelectorItem(title: String): KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_FEE_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_FEE_ITEM)
|
||||||
hasAnyDescendant(withText(title))
|
hasAnyDescendant(withText(title))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_ICON))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_ICON))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.TOKEN_AMOUNT))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.TOKEN_AMOUNT))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.FIAT_AMOUNT))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.FIAT_AMOUNT))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.DOT_SIGN))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.DOT_SIGN))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val customSelectorItem: KNode = child {
|
val customSelectorItem: KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_FEE_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_FEE_ITEM)
|
||||||
hasAnyDescendant(withText(getResourceString(R.string.common_custom)))
|
hasAnyDescendant(withText(getResourceString(R.string.common_custom)))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_ICON))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_ICON))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_TITLE))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_TITLE))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun customInputItem(title: String, hasFiatAmount: Boolean = false): KNode = child {
|
fun customInputItem(title: String, hasFiatAmount: Boolean = false): KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM)
|
||||||
hasAnyDescendant(withText(title))
|
hasAnyDescendant(withText(title))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TITLE))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TITLE))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TOOLTIP_ICON))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TOOLTIP_ICON))
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
if (hasFiatAmount) {
|
if (hasFiatAmount) {
|
||||||
hasAnyDescendant(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT))
|
hasAnyDescendant(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val nonceInputItem: KNode = child {
|
val nonceInputItem: KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_ITEM)
|
||||||
hasAnyDescendant(withText(getResourceString(R.string.send_nonce)))
|
hasAnyDescendant(withText(getResourceString(R.string.send_nonce)))
|
||||||
hasAnyDescendant(withText(getResourceString(R.string.send_nonce_hint)))
|
hasAnyDescendant(withText(getResourceString(R.string.send_nonce_hint)))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
|
|
@ -77,23 +71,23 @@ class SendSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNode
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun inputTextField(title: String): KNode = child {
|
private fun inputTextField(title: String): KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD)
|
||||||
hasAnySibling(withText(title))
|
hasAnySibling(withText(title))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun inputTextFieldValue(title: String): KNode = inputTextField(title).child {
|
fun inputTextFieldValue(title: String): KNode = inputTextField(title).child {
|
||||||
hasParent(withTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD))
|
hasParent(withTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val nonceInputTextField: KNode = child {
|
val nonceInputTextField: KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_TEXT_FIELD)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_TEXT_FIELD)
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val customInputItemFiatAmount: KNode = child {
|
val customInputItemFiatAmount: KNode = child {
|
||||||
hasTestTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT)
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -102,12 +96,6 @@ class SendSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNode
|
||||||
hasText(getResourceString(R.string.common_done))
|
hasText(getResourceString(R.string.common_done))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val confirmButton: KNode = child {
|
|
||||||
hasTestTag(BaseButtonTestTags.TEXT)
|
|
||||||
hasText(getResourceString(R.string.common_confirm))
|
|
||||||
useUnmergedTree = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun BaseTestCase.onSendSelectNetworkFeeBottomSheet(function: SendSelectNetworkFeeBottomSheetPageObject.() -> Unit) =
|
internal fun BaseTestCase.onSendSelectNetworkFeeBottomSheet(function: SendSelectNetworkFeeBottomSheetPageObject.() -> Unit) =
|
||||||
|
|
|
||||||
|
|
@ -2,38 +2,35 @@ package com.tangem.screens
|
||||||
|
|
||||||
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||||
import com.tangem.common.BaseTestCase
|
import com.tangem.common.BaseTestCase
|
||||||
import com.tangem.core.ui.test.SwapSelectNetworkFeeBottomSheetTestTags
|
import com.tangem.core.ui.test.SelectNetworkFeeBottomSheetTestTags
|
||||||
import com.tangem.core.ui.test.TopAppBarTestTags
|
|
||||||
import com.tangem.wallet.R
|
import com.tangem.wallet.R
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.KNode
|
import io.github.kakaocup.compose.node.element.KNode
|
||||||
import io.github.kakaocup.kakao.common.utilities.getResourceString
|
import io.github.kakaocup.kakao.common.utilities.getResourceString
|
||||||
import androidx.compose.ui.test.hasText as withText
|
|
||||||
|
|
||||||
class SwapSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
class SwapSelectNetworkFeeBottomSheetPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
||||||
ComposeScreen<SwapSelectNetworkFeeBottomSheetPageObject>(semanticsProvider = semanticsProvider) {
|
ComposeScreen<SwapSelectNetworkFeeBottomSheetPageObject>(semanticsProvider = semanticsProvider) {
|
||||||
|
|
||||||
val title: KNode = child {
|
val title: KNode = child {
|
||||||
hasTestTag(TopAppBarTestTags.TITLE)
|
hasText(getResourceString(R.string.fee_selector_choose_speed_title))
|
||||||
hasText(getResourceString(R.string.common_fee_selector_title))
|
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val marketSelectorItem: KNode = child {
|
val marketSelectorItem: KNode = child {
|
||||||
hasTestTag(SwapSelectNetworkFeeBottomSheetTestTags.SELECTOR_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE)
|
||||||
hasAnyChild(withText(getResourceString(R.string.common_fee_selector_option_market)))
|
hasText(getResourceString(R.string.common_fee_selector_option_market))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val fastSelectorItem: KNode = child {
|
val fastSelectorItem: KNode = child {
|
||||||
hasTestTag(SwapSelectNetworkFeeBottomSheetTestTags.SELECTOR_ITEM)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE)
|
||||||
hasAnyChild(withText(getResourceString(R.string.common_fee_selector_option_fast)))
|
hasText(getResourceString(R.string.common_fee_selector_option_fast))
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
val readMoreTextBlock: KNode = child {
|
val readMoreTextBlock: KNode = child {
|
||||||
hasTestTag(SwapSelectNetworkFeeBottomSheetTestTags.READ_MORE_TEXT)
|
hasTestTag(SelectNetworkFeeBottomSheetTestTags.LEARN_MORE_TEXT)
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,12 @@ class SwapTokenPageObject(semanticsProvider: SemanticsNodeInteractionsProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
val networkFeeBlock: KNode = child {
|
val networkFeeBlock: KNode = child {
|
||||||
hasTestTag(BaseBlockTestTags.BLOCK)
|
hasTestTag(FeeSelectorBlockTestTags.SELECTOR_BLOCK)
|
||||||
|
useUnmergedTree = true
|
||||||
|
}
|
||||||
|
|
||||||
|
val selectFeeIcon: KNode = child {
|
||||||
|
hasTestTag(FeeSelectorBlockTestTags.SELECT_FEE_ICON)
|
||||||
useUnmergedTree = true
|
useUnmergedTree = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ class SwapTokenTest : BaseTestCase() {
|
||||||
}
|
}
|
||||||
step("Assert 'Providers' block is displayed") {
|
step("Assert 'Providers' block is displayed") {
|
||||||
onSwapTokenScreen {
|
onSwapTokenScreen {
|
||||||
flakySafely(WAIT_UNTIL_TIMEOUT) {
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
providersBlock.assertIsDisplayed()
|
providersBlock.assertIsDisplayed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -210,7 +210,7 @@ class SwapTokenTest : BaseTestCase() {
|
||||||
step("Click on 'Network fee' block") {
|
step("Click on 'Network fee' block") {
|
||||||
onSwapTokenScreen {
|
onSwapTokenScreen {
|
||||||
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
networkFeeBlock.clickWithAssertion()
|
selectFeeIcon.clickWithAssertion()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -218,6 +218,7 @@ class SwapTokenTest : BaseTestCase() {
|
||||||
onSwapSelectNetworkFeeBottomSheet { title.assertIsDisplayed() }
|
onSwapSelectNetworkFeeBottomSheet { title.assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Assert 'Market' item is displayed") {
|
step("Assert 'Market' item is displayed") {
|
||||||
|
printSemanticTree(rootIndex = 1, useUnmergedTree = true)
|
||||||
onSwapSelectNetworkFeeBottomSheet { marketSelectorItem.assertIsDisplayed() }
|
onSwapSelectNetworkFeeBottomSheet { marketSelectorItem.assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Assert 'Fast' item is displayed") {
|
step("Assert 'Fast' item is displayed") {
|
||||||
|
|
|
||||||
|
|
@ -170,10 +170,10 @@ class SendFeeScreenTest : BaseTestCase() {
|
||||||
onSendConfirmScreen { feeSelectorIcon.performClick() }
|
onSendConfirmScreen { feeSelectorIcon.performClick() }
|
||||||
}
|
}
|
||||||
step("Assert 'Fee selector' bottom sheet title is displayed") {
|
step("Assert 'Fee selector' bottom sheet title is displayed") {
|
||||||
onSendSelectNetworkFeeBottomSheet { title.assertIsDisplayed() }
|
onSendSelectNetworkFeeBottomSheet { chooseSpeedTitle.assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Click on '$marketSelectorItem' selector item") {
|
step("Assert '$marketSelectorItem' selector item is displayed") {
|
||||||
onSendSelectNetworkFeeBottomSheet { regularFeeSelectorItem(marketSelectorItem).performClick() }
|
onSendSelectNetworkFeeBottomSheet { regularFeeSelectorItem(marketSelectorItem).assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Assert '$fastSelectorItem' selector item is displayed") {
|
step("Assert '$fastSelectorItem' selector item is displayed") {
|
||||||
onSendSelectNetworkFeeBottomSheet { regularFeeSelectorItem(fastSelectorItem).assertIsDisplayed() }
|
onSendSelectNetworkFeeBottomSheet { regularFeeSelectorItem(fastSelectorItem).assertIsDisplayed() }
|
||||||
|
|
@ -264,9 +264,6 @@ class SendFeeScreenTest : BaseTestCase() {
|
||||||
step("Click on 'Done' button") {
|
step("Click on 'Done' button") {
|
||||||
onSendSelectNetworkFeeBottomSheet { doneButton.performClick() }
|
onSendSelectNetworkFeeBottomSheet { doneButton.performClick() }
|
||||||
}
|
}
|
||||||
step("Click on 'Confirm' button") {
|
|
||||||
onSendSelectNetworkFeeBottomSheet { confirmButton.performClick() }
|
|
||||||
}
|
|
||||||
step("Assert fee block is displayed with new fee amount: '$newFeeAmount'") {
|
step("Assert fee block is displayed with new fee amount: '$newFeeAmount'") {
|
||||||
checkNetworkFeeBlock(currentFeeAmount = newFeeAmount, withFeeSelector = true)
|
checkNetworkFeeBlock(currentFeeAmount = newFeeAmount, withFeeSelector = true)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ import com.tangem.core.ui.extensions.resolveReference
|
||||||
import com.tangem.core.ui.extensions.stringReference
|
import com.tangem.core.ui.extensions.stringReference
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.res.TangemThemePreview
|
import com.tangem.core.ui.res.TangemThemePreview
|
||||||
import com.tangem.core.ui.test.SendSelectNetworkFeeBottomSheetTestTags
|
import com.tangem.core.ui.test.SelectNetworkFeeBottomSheetTestTags
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [InputRowEnter](https://www.figma.com/file/14ISV23YB1yVW1uNVwqrKv/Android?type=design&node-id=2100-799&mode=design&t=IQ5lBJEkFGU4WSvi-4)
|
* [InputRowEnter](https://www.figma.com/file/14ISV23YB1yVW1uNVwqrKv/Android?type=design&node-id=2100-799&mode=design&t=IQ5lBJEkFGU4WSvi-4)
|
||||||
|
|
@ -116,7 +116,7 @@ fun InputRowEnter(
|
||||||
keyboardOptions = keyboardOptions,
|
keyboardOptions = keyboardOptions,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(top = TangemTheme.dimens.spacing8)
|
.padding(top = TangemTheme.dimens.spacing8)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_TEXT_FIELD),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_TEXT_FIELD),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
iconRes?.let { iconRes ->
|
iconRes?.let { iconRes ->
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import com.tangem.core.ui.components.tooltip.TangemTooltip
|
||||||
import com.tangem.core.ui.extensions.TextReference
|
import com.tangem.core.ui.extensions.TextReference
|
||||||
import com.tangem.core.ui.extensions.resolveReference
|
import com.tangem.core.ui.extensions.resolveReference
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.test.SendSelectNetworkFeeBottomSheetTestTags
|
import com.tangem.core.ui.test.SelectNetworkFeeBottomSheetTestTags
|
||||||
import com.tangem.core.ui.utils.rememberDecimalFormat
|
import com.tangem.core.ui.utils.rememberDecimalFormat
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -143,21 +143,21 @@ fun InputRowEnterInfoAmountV2(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(16.dp)
|
.padding(16.dp)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM),
|
||||||
) {
|
) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(2.dp)) {
|
||||||
Text(
|
Text(
|
||||||
text = title.resolveReference(),
|
text = title.resolveReference(),
|
||||||
style = TangemTheme.typography.subtitle2,
|
style = TangemTheme.typography.subtitle2,
|
||||||
color = titleColor,
|
color = titleColor,
|
||||||
modifier = Modifier.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TITLE),
|
modifier = Modifier.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TITLE),
|
||||||
)
|
)
|
||||||
if (description != null) {
|
if (description != null) {
|
||||||
TangemTooltip(
|
TangemTooltip(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(16.dp)
|
.size(16.dp)
|
||||||
.clip(CircleShape)
|
.clip(CircleShape)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TOOLTIP_ICON),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_TOOLTIP_ICON),
|
||||||
text = description,
|
text = description,
|
||||||
content = { contentModifier ->
|
content = { contentModifier ->
|
||||||
Icon(
|
Icon(
|
||||||
|
|
@ -190,7 +190,7 @@ fun InputRowEnterInfoAmountV2(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(top = TangemTheme.dimens.spacing8)
|
.padding(top = TangemTheme.dimens.spacing8)
|
||||||
.weight(1f)
|
.weight(1f)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD),
|
||||||
)
|
)
|
||||||
info?.let { info ->
|
info?.let { info ->
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -200,7 +200,7 @@ fun InputRowEnterInfoAmountV2(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(start = TangemTheme.dimens.spacing8)
|
.padding(start = TangemTheme.dimens.spacing8)
|
||||||
.align(Alignment.Bottom)
|
.align(Alignment.Bottom)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_INPUT_ITEM_FIAT_AMOUNT),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.testTag
|
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
|
@ -25,7 +24,6 @@ import com.tangem.core.ui.extensions.resolveReference
|
||||||
import com.tangem.core.ui.extensions.resourceReference
|
import com.tangem.core.ui.extensions.resourceReference
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.res.TangemThemePreview
|
import com.tangem.core.ui.res.TangemThemePreview
|
||||||
import com.tangem.core.ui.test.SwapSelectNetworkFeeBottomSheetTestTags
|
|
||||||
import com.tangem.utils.StringsSigns
|
import com.tangem.utils.StringsSigns
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
@ -69,8 +67,7 @@ fun SelectorRowItem(
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(paddingValues)
|
.padding(paddingValues),
|
||||||
.testTag(SwapSelectNetworkFeeBottomSheetTestTags.SELECTOR_ITEM),
|
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.tangem.core.ui.test
|
||||||
|
|
||||||
|
object SelectNetworkFeeBottomSheetTestTags {
|
||||||
|
const val REGULAR_FEE_ITEM = "SELECT_NETWORK_FEE_REGULAR_FEE_ITEM"
|
||||||
|
const val REGULAR_ITEM_ICON = "SELECT_NETWORK_FEE_REGULAR_ITEM_ICON"
|
||||||
|
const val REGULAR_ITEM_TITLE = "SELECT_NETWORK_FEE_REGULAR_ITEM_TITLE"
|
||||||
|
const val DOT_SIGN = "SELECT_NETWORK_FEE_DOT_SIGN"
|
||||||
|
const val TOKEN_AMOUNT = "SELECT_NETWORK_FEE_TOKEN_AMOUNT"
|
||||||
|
const val FIAT_AMOUNT = "SELECT_NETWORK_FEE_FIAT_AMOUNT"
|
||||||
|
const val LEARN_MORE_TEXT = "SELECT_NETWORK_FEE_LEARN_MORE_TEXT"
|
||||||
|
|
||||||
|
const val CUSTOM_FEE_ITEM = "SELECT_NETWORK_FEE_CUSTOM_FEE_ITEM"
|
||||||
|
const val CUSTOM_ITEM_ICON = "SELECT_NETWORK_FEE_CUSTOM_ITEM_ICON"
|
||||||
|
const val CUSTOM_ITEM_TITLE = "SELECT_NETWORK_FEE_CUSTOM_ITEM_TITLE"
|
||||||
|
|
||||||
|
const val CUSTOM_INPUT_ITEM = "SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM"
|
||||||
|
const val NONCE_INPUT_ITEM = "SELECT_NETWORK_FEE_NONCE_INPUT_ITEM"
|
||||||
|
const val NONCE_INPUT_TEXT_FIELD = "SELECT_NETWORK_FEE_NONCE_INPUT_TEXT_FIELD"
|
||||||
|
const val CUSTOM_INPUT_ITEM_TITLE = "SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_TITLE"
|
||||||
|
const val CUSTOM_INPUT_ITEM_TOOLTIP_ICON = "SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_TOOLTIP_ICON"
|
||||||
|
const val CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD = "SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD"
|
||||||
|
const val CUSTOM_INPUT_ITEM_FIAT_AMOUNT = "SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_FIAT_AMOUNT"
|
||||||
|
}
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
package com.tangem.core.ui.test
|
|
||||||
|
|
||||||
object SendSelectNetworkFeeBottomSheetTestTags {
|
|
||||||
const val REGULAR_FEE_ITEM = "SEND_SELECT_NETWORK_FEE_REGULAR_FEE_ITEM"
|
|
||||||
const val REGULAR_ITEM_ICON = "SEND_SELECT_NETWORK_FEE_REGULAR_ITEM_ICON"
|
|
||||||
const val REGULAR_ITEM_TITLE = "SEND_SELECT_NETWORK_FEE_REGULAR_ITEM_TITLE"
|
|
||||||
const val DOT_SIGN = "SEND_SELECT_NETWORK_FEE_DOT_SIGN"
|
|
||||||
const val TOKEN_AMOUNT = "SEND_SELECT_NETWORK_FEE_TOKEN_AMOUNT"
|
|
||||||
const val FIAT_AMOUNT = "SEND_SELECT_NETWORK_FEE_FIAT_AMOUNT"
|
|
||||||
|
|
||||||
const val CUSTOM_FEE_ITEM = "SEND_SELECT_NETWORK_FEE_CUSTOM_FEE_ITEM"
|
|
||||||
const val CUSTOM_ITEM_ICON = "SEND_SELECT_NETWORK_FEE_CUSTOM_ITEM_ICON"
|
|
||||||
const val CUSTOM_ITEM_TITLE = "SEND_SELECT_NETWORK_FEE_CUSTOM_ITEM_TITLE"
|
|
||||||
|
|
||||||
const val CUSTOM_INPUT_ITEM = "SEND_SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM"
|
|
||||||
const val NONCE_INPUT_ITEM = "SEND_SELECT_NETWORK_FEE_NONCE_INPUT_ITEM"
|
|
||||||
const val NONCE_INPUT_TEXT_FIELD = "SEND_SELECT_NETWORK_FEE_NONCE_INPUT_TEXT_FIELD"
|
|
||||||
const val CUSTOM_INPUT_ITEM_TITLE = "SEND_SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_TITLE"
|
|
||||||
const val CUSTOM_INPUT_ITEM_TOOLTIP_ICON = "SEND_SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_TOOLTIP_ICON"
|
|
||||||
const val CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD = "SEND_SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_INPUT_TEXT_FIELD"
|
|
||||||
const val CUSTOM_INPUT_ITEM_FIAT_AMOUNT = "SEND_SELECT_NETWORK_FEE_CUSTOM_INPUT_ITEM_FIAT_AMOUNT"
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
package com.tangem.core.ui.test
|
|
||||||
|
|
||||||
object SwapSelectNetworkFeeBottomSheetTestTags {
|
|
||||||
const val READ_MORE_TEXT = "SWAP_SELECT_NETWORK_FEE_READ_MORE_TEXT"
|
|
||||||
const val SELECTOR_ITEM = "SWAP_SELECT_NETWORK_FEE_SELECTOR_ITEM"
|
|
||||||
}
|
|
||||||
|
|
@ -49,7 +49,7 @@ import com.tangem.core.ui.format.bigdecimal.fee
|
||||||
import com.tangem.core.ui.format.bigdecimal.format
|
import com.tangem.core.ui.format.bigdecimal.format
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.res.TangemThemePreview
|
import com.tangem.core.ui.res.TangemThemePreview
|
||||||
import com.tangem.core.ui.test.SendSelectNetworkFeeBottomSheetTestTags
|
import com.tangem.core.ui.test.SelectNetworkFeeBottomSheetTestTags
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
|
|
@ -118,7 +118,9 @@ private fun Title(modifier: Modifier = Modifier, onLearnMoreClick: () -> Unit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Text(
|
Text(
|
||||||
modifier = modifier.padding(horizontal = 32.dp),
|
modifier = modifier
|
||||||
|
.padding(horizontal = 32.dp)
|
||||||
|
.testTag(SelectNetworkFeeBottomSheetTestTags.LEARN_MORE_TEXT),
|
||||||
text = annotatedString,
|
text = annotatedString,
|
||||||
style = TangemTheme.typography.caption2,
|
style = TangemTheme.typography.caption2,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
|
|
@ -214,7 +216,7 @@ private fun CustomFeeBlock(
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(horizontal = 12.dp, vertical = 15.dp)
|
.padding(horizontal = 12.dp, vertical = 15.dp)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_FEE_ITEM),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_FEE_ITEM),
|
||||||
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
|
|
@ -223,7 +225,7 @@ private fun CustomFeeBlock(
|
||||||
.size(36.dp)
|
.size(36.dp)
|
||||||
.background(color = iconBackgroundColor, shape = CircleShape)
|
.background(color = iconBackgroundColor, shape = CircleShape)
|
||||||
.padding(6.dp)
|
.padding(6.dp)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_ICON),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_ICON),
|
||||||
painter = painterResource(R.drawable.ic_edit_v2_24),
|
painter = painterResource(R.drawable.ic_edit_v2_24),
|
||||||
tint = iconTint,
|
tint = iconTint,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
|
|
@ -235,7 +237,7 @@ private fun CustomFeeBlock(
|
||||||
style = TangemTheme.typography.subtitle2,
|
style = TangemTheme.typography.subtitle2,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.CenterStart)
|
.align(Alignment.CenterStart)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_TITLE),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.CUSTOM_ITEM_TITLE),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -310,7 +312,7 @@ private fun ExpandedCustomFeeItems(
|
||||||
color = TangemTheme.colors.background.primary,
|
color = TangemTheme.colors.background.primary,
|
||||||
shape = TangemTheme.shapes.roundedCornersXMedium,
|
shape = TangemTheme.shapes.roundedCornersXMedium,
|
||||||
)
|
)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_ITEM),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.NONCE_INPUT_ITEM),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -334,7 +336,7 @@ internal fun RegularFeeItemContent(
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(horizontal = 12.dp, vertical = 15.dp)
|
.padding(horizontal = 12.dp, vertical = 15.dp)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_FEE_ITEM),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_FEE_ITEM),
|
||||||
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
|
|
@ -343,7 +345,7 @@ internal fun RegularFeeItemContent(
|
||||||
.size(36.dp)
|
.size(36.dp)
|
||||||
.background(color = iconBackgroundColor, shape = CircleShape)
|
.background(color = iconBackgroundColor, shape = CircleShape)
|
||||||
.padding(6.dp)
|
.padding(6.dp)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_ICON),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_ICON),
|
||||||
painter = painterResource(iconRes),
|
painter = painterResource(iconRes),
|
||||||
tint = iconTint,
|
tint = iconTint,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
|
|
@ -385,7 +387,7 @@ private fun FeeDescription(
|
||||||
text = title.resolveReference(),
|
text = title.resolveReference(),
|
||||||
color = TangemTheme.colors.text.primary1,
|
color = TangemTheme.colors.text.primary1,
|
||||||
style = TangemTheme.typography.subtitle2,
|
style = TangemTheme.typography.subtitle2,
|
||||||
modifier = Modifier.testTag(SendSelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE),
|
modifier = Modifier.testTag(SelectNetworkFeeBottomSheetTestTags.REGULAR_ITEM_TITLE),
|
||||||
)
|
)
|
||||||
when {
|
when {
|
||||||
isNotEnoughFunds -> Text(
|
isNotEnoughFunds -> Text(
|
||||||
|
|
@ -418,7 +420,7 @@ private fun FeeValueContent(preDot: TextReference, postDot: TextReference?, elli
|
||||||
color = textColor,
|
color = textColor,
|
||||||
textAlign = TextAlign.End,
|
textAlign = TextAlign.End,
|
||||||
ellipsis = ellipsis,
|
ellipsis = ellipsis,
|
||||||
modifier = Modifier.testTag(SendSelectNetworkFeeBottomSheetTestTags.TOKEN_AMOUNT),
|
modifier = Modifier.testTag(SelectNetworkFeeBottomSheetTestTags.TOKEN_AMOUNT),
|
||||||
)
|
)
|
||||||
if (postDot != null) {
|
if (postDot != null) {
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -428,13 +430,13 @@ private fun FeeValueContent(preDot: TextReference, postDot: TextReference?, elli
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(horizontal = TangemTheme.dimens.spacing4)
|
.padding(horizontal = TangemTheme.dimens.spacing4)
|
||||||
.testTag(SendSelectNetworkFeeBottomSheetTestTags.DOT_SIGN),
|
.testTag(SelectNetworkFeeBottomSheetTestTags.DOT_SIGN),
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = postDot.resolveReference(),
|
text = postDot.resolveReference(),
|
||||||
style = textStyle,
|
style = textStyle,
|
||||||
color = textColor,
|
color = textColor,
|
||||||
modifier = Modifier.testTag(SendSelectNetworkFeeBottomSheetTestTags.FIAT_AMOUNT),
|
modifier = Modifier.testTag(SelectNetworkFeeBottomSheetTestTags.FIAT_AMOUNT),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import androidx.compose.foundation.text.ClickableText
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.platform.testTag
|
|
||||||
import androidx.compose.ui.text.SpanStyle
|
import androidx.compose.ui.text.SpanStyle
|
||||||
import androidx.compose.ui.text.buildAnnotatedString
|
import androidx.compose.ui.text.buildAnnotatedString
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
|
@ -20,7 +19,6 @@ import com.tangem.core.ui.components.rows.SelectorRowItem
|
||||||
import com.tangem.core.ui.extensions.*
|
import com.tangem.core.ui.extensions.*
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.res.TangemThemePreview
|
import com.tangem.core.ui.res.TangemThemePreview
|
||||||
import com.tangem.core.ui.test.SwapSelectNetworkFeeBottomSheetTestTags
|
|
||||||
import com.tangem.feature.swap.domain.models.ui.FeeType
|
import com.tangem.feature.swap.domain.models.ui.FeeType
|
||||||
import com.tangem.feature.swap.models.states.ChooseFeeBottomSheetConfig
|
import com.tangem.feature.swap.models.states.ChooseFeeBottomSheetConfig
|
||||||
import com.tangem.feature.swap.models.states.FeeItemState
|
import com.tangem.feature.swap.models.states.FeeItemState
|
||||||
|
|
@ -90,8 +88,7 @@ private fun FooterBlock(readMore: TextReference, onReadMoreClick: () -> Unit) {
|
||||||
.padding(
|
.padding(
|
||||||
vertical = TangemTheme.dimens.spacing8,
|
vertical = TangemTheme.dimens.spacing8,
|
||||||
horizontal = TangemTheme.dimens.spacing16,
|
horizontal = TangemTheme.dimens.spacing16,
|
||||||
)
|
),
|
||||||
.testTag(SwapSelectNetworkFeeBottomSheetTestTags.READ_MORE_TEXT),
|
|
||||||
style = TangemTheme.typography.caption2.copy(textAlign = TextAlign.Start),
|
style = TangemTheme.typography.caption2.copy(textAlign = TextAlign.Start),
|
||||||
onClick = click,
|
onClick = click,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue