diff --git a/features/swap/presentation/build.gradle.kts b/features/swap/presentation/build.gradle.kts index c41603a025..bea28f028c 100644 --- a/features/swap/presentation/build.gradle.kts +++ b/features/swap/presentation/build.gradle.kts @@ -21,6 +21,7 @@ dependencies { implementation(projects.core.ui) implementation(projects.common.routing) implementation(projects.common.ui) + implementation(projects.core.decompose) // For Route supertype /** Domain modules **/ implementation(projects.domain.appCurrency) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt index bc5009da3c..19b2c2dca6 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/router/SwapRouter.kt @@ -33,12 +33,18 @@ internal class SwapRouter( } fun openTokenDetails(userWalletId: UserWalletId, currency: CryptoCurrency) { - router.push( - AppRoute.CurrencyDetails( - userWalletId = userWalletId, - currency = currency, - ), + val route = AppRoute.CurrencyDetails( + userWalletId = userWalletId, + currency = currency, ) + + if (route in router.stack) { + router.popTo(route) + } else { + router.pop { + router.push(route) + } + } } }