From 26201c5c0b94df066fefda2de1a62c37361acb55 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 18 Jun 2026 07:15:57 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../impl/addfunds/DefaultAddFundsComponent.kt | 53 +++++++------------ .../impl/addfunds/model/AddFundsModel.kt | 2 + .../TransferBottomSheetComponent.kt | 18 +++++-- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/DefaultAddFundsComponent.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/DefaultAddFundsComponent.kt index b04fce2df3..0d1cc947db 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/DefaultAddFundsComponent.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/DefaultAddFundsComponent.kt @@ -1,36 +1,29 @@ package com.tangem.features.commonfeatures.impl.addfunds import androidx.compose.animation.AnimatedContent -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material3.Icon +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.vectorResource import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.context.child import com.tangem.core.decompose.model.getOrCreateModel -import com.tangem.core.ui.components.bottomsheets.LocalTangemBottomSheetContentBottomInset -import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet -import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig -import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent -import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetType +import com.tangem.core.ui.components.bottomsheets.* +import com.tangem.core.ui.ds.image.TangemIconUM import com.tangem.core.ui.ds.topbar.TangemTopBar import com.tangem.core.ui.ds.topbar.TangemTopBarType -import com.tangem.core.ui.extensions.clickableSingle +import com.tangem.core.ui.ds2.button.TangemButton import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemeRedesign import com.tangem.core.ui.test.AddFundsBottomSheetTestTags import com.tangem.features.commonfeatures.api.addfunds.AddFundsComponent import com.tangem.features.commonfeatures.api.choosetoken.ChooseTokenComponent -import com.tangem.features.commonfeatures.impl.R import com.tangem.features.commonfeatures.impl.addfunds.model.AddFundsModel import com.tangem.features.commonfeatures.impl.addfunds.model.uiSpec import com.tangem.features.commonfeatures.impl.tokenactions.TokenActionsComponent @@ -195,15 +188,24 @@ internal class DefaultAddFundsComponent @AssistedInject constructor( title = route.uiSpec().title, type = TangemTopBarType.BottomSheet, startContent = if (canGoBack) { - { CircleIconButton(iconRes = CoreR.drawable.ic_arrow_back_28, onClick = onBackClick) } + { + TangemButton( + iconStart = TangemIconUM.Icon(iconRes = CoreR.drawable.ic_arrow_back_28), + onClick = onBackClick, + size = TangemButton.Size.X11, + variant = TangemButton.Variant.Material, + ) + } } else { null }, endContent = { - CircleIconButton( - iconRes = R.drawable.ic_close_24, - onClick = onCloseClick, + TangemButton( modifier = Modifier.testTag(AddFundsBottomSheetTestTags.CLOSE_BUTTON), + iconStart = TangemIconUM.Icon(iconRes = CoreR.drawable.ic_close_24), + onClick = onCloseClick, + size = TangemButton.Size.X11, + variant = TangemButton.Variant.Material, ) }, ) @@ -218,23 +220,6 @@ internal class DefaultAddFundsComponent @AssistedInject constructor( } } - @Composable - private fun CircleIconButton(iconRes: Int, onClick: () -> Unit, modifier: Modifier = Modifier) { - Icon( - imageVector = ImageVector.vectorResource(id = iconRes), - contentDescription = null, - tint = TangemTheme.colors2.graphic.neutral.primary, - modifier = modifier - .size(TangemTheme.dimens2.x11) - .background( - color = TangemTheme.colors2.button.backgroundSecondary, - shape = CircleShape, - ) - .clickableSingle(onClick = onClick) - .padding(TangemTheme.dimens2.x2), - ) - } - @AssistedFactory interface Factory : AddFundsComponent.Factory { override fun create(context: AppComponentContext, params: AddFundsComponent.Params): DefaultAddFundsComponent diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/model/AddFundsModel.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/model/AddFundsModel.kt index 9612bf90ef..f3d991be49 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/model/AddFundsModel.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addfunds/model/AddFundsModel.kt @@ -1,5 +1,6 @@ package com.tangem.features.commonfeatures.impl.addfunds.model +import androidx.compose.runtime.Immutable import com.tangem.blockchainsdk.compatibility.getTokenIdIfL2Network import com.tangem.common.routing.AppRoute import com.tangem.common.routing.AppRouter @@ -267,6 +268,7 @@ internal class AddFundsModel @Inject constructor( routeStack.update { it + route } } + @Immutable sealed interface UiRoute { data object Loading : UiRoute data object ChooseToken : UiRoute diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/bottomsheet/TransferBottomSheetComponent.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/bottomsheet/TransferBottomSheetComponent.kt index fe20b8a992..baaa0a3cb3 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/bottomsheet/TransferBottomSheetComponent.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/bottomsheet/TransferBottomSheetComponent.kt @@ -8,8 +8,11 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet -import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle import com.tangem.core.ui.decompose.ComposableBottomSheetComponent +import com.tangem.core.ui.ds.image.TangemIconUM +import com.tangem.core.ui.ds.topbar.TangemTopBar +import com.tangem.core.ui.ds.topbar.TangemTopBarType +import com.tangem.core.ui.ds2.button.TangemButton import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.tokendetails.presentation.tokendetails.state.TransferUM @@ -41,10 +44,17 @@ internal class TransferBottomSheetComponent( config = config, containerColor = TangemTheme.colors2.surface.level2, title = { - TangemModalBottomSheetTitle( + TangemTopBar( title = resourceReference(CoreR.string.common_transfer), - endIconRes = CoreR.drawable.ic_close_24, - onEndClick = ::dismiss, + type = TangemTopBarType.BottomSheet, + endContent = { + TangemButton( + iconStart = TangemIconUM.Icon(iconRes = CoreR.drawable.ic_close_24), + onClick = ::dismiss, + size = TangemButton.Size.X11, + variant = TangemButton.Variant.Material, + ) + }, ) }, content = { contentState ->