Updated on 2026-08-14
This commit is contained in:
parent
e50d2d9452
commit
642937b819
7 changed files with 55 additions and 46 deletions
|
|
@ -62,7 +62,7 @@ import kotlinx.coroutines.launch
|
|||
import java.math.BigDecimal
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("LongParameterList", "LargeClass")
|
||||
@Suppress("LongParameterList", "LargeClass", "TooManyFunctions")
|
||||
@Stable
|
||||
@ModelScoped
|
||||
internal class TangemPayDetailsModel @Inject constructor(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.tangem.features.tangempay.utils
|
||||
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.domain.models.account.BankCredentials
|
||||
import com.tangem.features.tangempay.details.impl.R
|
||||
import com.tangem.features.virtualaccount.details.component.VirtualAccountAddFundsBottomSheetComponent.RequisitesRow
|
||||
|
||||
/**
|
||||
|
|
@ -16,22 +18,32 @@ internal const val VA_DAILY_DEPOSIT_LIMIT_PLACEHOLDER = "$10,000"
|
|||
*/
|
||||
internal fun BankCredentials.toRequisitesRows(): List<RequisitesRow> = listOf(
|
||||
RequisitesRow(
|
||||
title = "Beneficiary name and address",
|
||||
titleForShare = "Beneficiary name and address",
|
||||
value = "$beneficiaryName\n$beneficiaryAddress",
|
||||
title = resourceReference(R.string.virtual_account_requisites_beneficiary_name),
|
||||
titleForShare = "Beneficiary name",
|
||||
value = beneficiaryName,
|
||||
),
|
||||
RequisitesRow(
|
||||
title = "Bank name and address",
|
||||
titleForShare = "Bank name and address",
|
||||
value = "$beneficiaryBankName\n$beneficiaryBankAddress",
|
||||
title = resourceReference(R.string.virtual_account_requisites_beneficiary_address),
|
||||
titleForShare = "Beneficiary address",
|
||||
value = beneficiaryBankAddress,
|
||||
),
|
||||
RequisitesRow(
|
||||
title = "Account number",
|
||||
title = resourceReference(R.string.virtual_account_requisites_bank_name),
|
||||
titleForShare = "Bank name",
|
||||
value = beneficiaryBankName,
|
||||
),
|
||||
RequisitesRow(
|
||||
title = resourceReference(R.string.virtual_account_requisites_bank_address),
|
||||
titleForShare = "Bank address",
|
||||
value = beneficiaryBankAddress,
|
||||
),
|
||||
RequisitesRow(
|
||||
title = resourceReference(R.string.virtual_account_requisites_account_number),
|
||||
titleForShare = "Account number",
|
||||
value = accountNumber,
|
||||
),
|
||||
RequisitesRow(
|
||||
title = "Routing number",
|
||||
title = resourceReference(R.string.virtual_account_requisites_routing_number),
|
||||
titleForShare = "Routing number",
|
||||
value = routingNumber,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.tangem.features.virtualaccount.details.component
|
|||
|
||||
import com.tangem.core.decompose.factory.ComponentFactory
|
||||
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
|
||||
/**
|
||||
|
|
@ -25,7 +26,7 @@ interface VirtualAccountAddFundsBottomSheetComponent : ComposableBottomSheetComp
|
|||
)
|
||||
|
||||
data class RequisitesRow(
|
||||
val title: String,
|
||||
val title: TextReference,
|
||||
val titleForShare: String,
|
||||
val value: String,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,8 +16,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.tangem.core.ui.components.text.applyBladeBrush
|
||||
import com.tangem.core.ui.ds2.shimmers.TextShimmer
|
||||
import com.tangem.core.ui.ds2.shimmers.TextShimmerStyle
|
||||
import com.tangem.core.ui.ds2.shimmers.TangemShimmer
|
||||
import com.tangem.core.ui.extensions.*
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreviewRedesign
|
||||
|
|
@ -44,11 +43,9 @@ fun TangemBalanceHeader(
|
|||
},
|
||||
) { animatedState ->
|
||||
when (animatedState) {
|
||||
is TangemBalanceHeaderState.Loading -> TextShimmer(
|
||||
is TangemBalanceHeaderState.Loading -> TangemShimmer(
|
||||
modifier = Modifier.size(width = 160.dp, height = 56.dp),
|
||||
text = "1234.00",
|
||||
style = TextShimmerStyle.HEADING_MEDIUM,
|
||||
radius = TangemTheme.dimens2.x25,
|
||||
style = TangemTheme.typography3.heading.medium,
|
||||
)
|
||||
is TangemBalanceHeaderState.Content -> Text(
|
||||
modifier = balanceModifier,
|
||||
|
|
|
|||
|
|
@ -57,22 +57,17 @@ internal class VirtualAccountMainModel @Inject constructor(
|
|||
|
||||
private fun buildRequisites(details: VirtualAccountDepositDetails) = listOf(
|
||||
VirtualAccountAddFundsBottomSheetComponent.RequisitesRow(
|
||||
title = "Beneficiary name and address",
|
||||
titleForShare = "Beneficiary name and address",
|
||||
value = "${details.beneficiaryName}\n${details.beneficiaryAddress}",
|
||||
title = resourceReference(R.string.virtual_account_requisites_beneficiary_name),
|
||||
titleForShare = "Beneficiary name",
|
||||
value = details.beneficiaryName,
|
||||
),
|
||||
VirtualAccountAddFundsBottomSheetComponent.RequisitesRow(
|
||||
title = "Bank name and address",
|
||||
titleForShare = "Bank name and address",
|
||||
value = "${details.bankName}\n${details.bankAddress}",
|
||||
),
|
||||
VirtualAccountAddFundsBottomSheetComponent.RequisitesRow(
|
||||
title = "Account number",
|
||||
title = resourceReference(R.string.virtual_account_requisites_account_number),
|
||||
titleForShare = "Account number",
|
||||
value = details.accountNumber,
|
||||
),
|
||||
VirtualAccountAddFundsBottomSheetComponent.RequisitesRow(
|
||||
title = "Routing number",
|
||||
title = resourceReference(R.string.virtual_account_requisites_routing_number),
|
||||
titleForShare = "Routing number",
|
||||
value = details.routingNumber,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.tangem.core.decompose.model.Model
|
|||
import com.tangem.core.decompose.model.ParamsContainer
|
||||
import com.tangem.core.navigation.share.ShareManager
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.features.virtualaccount.details.component.VirtualAccountAddFundsBottomSheetComponent
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
|
@ -55,25 +54,31 @@ internal class VirtualAccountAddFundsModel @Inject constructor(
|
|||
uiState.update { state -> state.copy(content = buildDetailsContent()) }
|
||||
}
|
||||
|
||||
private fun buildDetailsContent() = VirtualAccountAddFundsUM.Content.Details(
|
||||
items = params.requisites
|
||||
.map { detailItem(label = it.title, value = it.value) }
|
||||
.toImmutableList(),
|
||||
dailyLimit = params.dailyDepositLimit,
|
||||
onShareClick = {
|
||||
params.onShareClicked()
|
||||
shareManager.shareText(buildShareText())
|
||||
},
|
||||
)
|
||||
private fun buildDetailsContent(): VirtualAccountAddFundsUM.Content.Details {
|
||||
return VirtualAccountAddFundsUM.Content.Details(
|
||||
items = params.requisites
|
||||
.map(::detailItem)
|
||||
.toImmutableList(),
|
||||
dailyLimit = params.dailyDepositLimit,
|
||||
onShareClick = {
|
||||
params.onShareClicked()
|
||||
shareManager.shareText(buildShareText())
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
private fun detailItem(label: String, value: String) = VirtualAccountAddFundsUM.DetailItem(
|
||||
label = stringReference(label),
|
||||
value = value,
|
||||
onCopyClick = {
|
||||
params.onFieldCopied(label)
|
||||
clipboardManager.setText(text = value, isSensitive = true)
|
||||
},
|
||||
)
|
||||
private fun detailItem(
|
||||
requisitesRow: VirtualAccountAddFundsBottomSheetComponent.RequisitesRow,
|
||||
): VirtualAccountAddFundsUM.DetailItem {
|
||||
return VirtualAccountAddFundsUM.DetailItem(
|
||||
label = requisitesRow.title,
|
||||
value = requisitesRow.value,
|
||||
onCopyClick = {
|
||||
params.onFieldCopied(requisitesRow.titleForShare)
|
||||
clipboardManager.setText(text = requisitesRow.value, isSensitive = true)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
private fun buildShareText(): String {
|
||||
return buildString {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue