Updated on 2026-08-14

This commit is contained in:
Tangem 2025-07-03 23:06:58 +05:00
commit a346739b20
6 changed files with 15 additions and 12 deletions

View file

@ -1,6 +1,7 @@
package com.tangem.features.swap.v2.api.choosetoken
import com.tangem.domain.models.currency.CryptoCurrency
import kotlinx.coroutines.flow.SharedFlow
/**
* Triggers swap token selection
@ -8,4 +9,11 @@ import com.tangem.domain.models.currency.CryptoCurrency
interface SwapChooseTokenNetworkTrigger {
suspend fun trigger(cryptoCurrency: CryptoCurrency)
}
/**
* Listens to swap token selection
*/
interface SwapChooseTokenNetworkListener {
val swapChooseTokenNetworkResultFlow: SharedFlow<CryptoCurrency>
}

View file

@ -30,6 +30,7 @@ import com.tangem.domain.tokens.GetMinimumTransactionAmountSyncUseCase
import com.tangem.domain.tokens.GetMultiCryptoCurrencyStatusUseCase
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.domain.transaction.usecase.GetAllowanceUseCase
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkListener
import com.tangem.features.swap.v2.impl.R
import com.tangem.features.swap.v2.impl.amount.SwapAmountBlockComponent.SwapChooseProviderConfig
import com.tangem.features.swap.v2.impl.amount.SwapAmountComponentParams
@ -40,7 +41,6 @@ import com.tangem.features.swap.v2.impl.amount.entity.SwapAmountUM
import com.tangem.features.swap.v2.impl.amount.model.converter.SwapAmountReadyStateConverter
import com.tangem.features.swap.v2.impl.amount.model.transformers.*
import com.tangem.features.swap.v2.impl.chooseprovider.SwapChooseProviderComponent
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.SwapChooseTokenNetworkListener
import com.tangem.features.swap.v2.impl.common.entity.SwapQuoteUM
import com.tangem.features.swap.v2.impl.common.entity.SwapQuoteUM.Content.DifferencePercent
import com.tangem.utils.coroutines.CoroutineDispatcherProvider

View file

@ -33,6 +33,7 @@ internal class SwapChooseProviderModel @Inject constructor(
fun onProviderClick(quoteUM: SwapQuoteUM) {
params.callback.onProviderResult(quoteUM)
params.onDismiss()
}
private fun getInitialState(): SwapChooseProviderBottomSheetContent {

View file

@ -3,10 +3,10 @@ package com.tangem.features.swap.v2.impl.choosetoken.di
import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkComponent
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkListener
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkTrigger
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.DefaultSwapChooseTokenNetworkComponent
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.DefaultSwapChooseTokenNetworkTrigger
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.SwapChooseTokenNetworkListener
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.model.SwapChooseTokenNetworkModel
import dagger.Binds
import dagger.Module

View file

@ -1,19 +1,13 @@
package com.tangem.features.swap.v2.impl.choosetoken.fromSupported
import com.tangem.domain.models.currency.CryptoCurrency
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkListener
import com.tangem.features.swap.v2.api.choosetoken.SwapChooseTokenNetworkTrigger
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.SharedFlow
import javax.inject.Inject
import javax.inject.Singleton
/**
* Listens to swap token selection
*/
interface SwapChooseTokenNetworkListener {
val swapChooseTokenNetworkResultFlow: SharedFlow<CryptoCurrency>
}
@Singleton
internal class DefaultSwapChooseTokenNetworkTrigger @Inject constructor() :
SwapChooseTokenNetworkTrigger,
@ -22,7 +16,7 @@ internal class DefaultSwapChooseTokenNetworkTrigger @Inject constructor() :
override val swapChooseTokenNetworkResultFlow: SharedFlow<CryptoCurrency>
field = MutableSharedFlow<CryptoCurrency>()
override suspend fun trigger(result: CryptoCurrency) {
swapChooseTokenNetworkResultFlow.emit(result)
override suspend fun trigger(cryptoCurrency: CryptoCurrency) {
swapChooseTokenNetworkResultFlow.emit(cryptoCurrency)
}
}

View file

@ -10,7 +10,7 @@ internal object SwapChooseTokenFactory {
fun getErrorMessage(tokenName: String, onDismiss: () -> Unit): MessageBottomSheetUMV2 {
return messageBottomSheetUM {
infoBlock {
icon(R.drawable.img_attention_20) {
icon(R.drawable.ic_alert_triangle_20) {
type = MessageBottomSheetUMV2.Icon.Type.Attention
backgroundType = MessageBottomSheetUMV2.Icon.BackgroundType.SameAsTint
}