diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/model/TokenActionsModel.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/model/TokenActionsModel.kt index 896c54f259..95b7c4fe7e 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/model/TokenActionsModel.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/model/TokenActionsModel.kt @@ -19,6 +19,7 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject @ModelScoped @@ -76,12 +77,12 @@ internal class TokenActionsModel @Inject constructor( params.callbacks.onQuickActionClick(handledAction.action) val isReceive = handledAction.action == TokenActionsBSContentUM.Action.Receive if (!isReceive) return@launch - modelScope.launch(dispatchers.default) { - val tokenConfig = receiveAddressesFactory.create( + val tokenConfig = withContext(dispatchers.default) { + receiveAddressesFactory.create( status = handledAction.cryptoCurrencyData.status, userWalletId = handledAction.cryptoCurrencyData.userWallet.walletId, - ) ?: return@launch - bottomSheetNavigation.activate(tokenConfig) - } + ) + } ?: return@launch + bottomSheetNavigation.activate(tokenConfig) } } \ No newline at end of file diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/ui/TokenActionsContentV2.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/ui/TokenActionsContentV2.kt index 11f99d541e..da852d3217 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/ui/TokenActionsContentV2.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/addtoportfolio/ui/TokenActionsContentV2.kt @@ -1,6 +1,12 @@ package com.tangem.features.commonfeatures.impl.addtoportfolio.ui import android.content.res.Configuration +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.MutableTransitionState +import androidx.compose.animation.expandVertically +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.shrinkVertically import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -8,6 +14,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.key +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -61,19 +68,28 @@ internal fun TokenActionsContentV2(state: TokenActionsUM, modifier: Modifier = M ) { state.quickActions.actions.fastForEach { actionUM -> key(actionUM.title) { - TokenActionRow( - iconRes = actionUM.icon, - title = actionUM.title, - description = actionUM.description, - onClick = { state.quickActions.onQuickActionClick(actionUM) }, - onLongClick = { state.quickActions.onQuickActionLongClick(actionUM) } - .takeIf { actionUM.isLongClickAvailable }, - ) + val transitionState = remember { + MutableTransitionState(initialState = false).apply { targetState = true } + } + AnimatedVisibility( + visibleState = transitionState, + enter = fadeIn() + expandVertically(), + exit = fadeOut() + shrinkVertically(), + ) { + TokenActionRow( + iconRes = actionUM.icon, + title = actionUM.title, + description = actionUM.description, + onClick = { state.quickActions.onQuickActionClick(actionUM) }, + onLongClick = { state.quickActions.onQuickActionLongClick(actionUM) } + .takeIf { actionUM.isLongClickAvailable }, + ) + } } } } - SpacerH(TangemTheme.dimens2.x2) + SpacerH(TangemTheme.dimens2.x6) CompositionLocalProvider(LocalHazeState provides rememberHazeState()) { SecondaryTangemButton(