Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-22 16:36:07 +04:00
parent 1f27edeb70
commit da1b0477e0
9 changed files with 114 additions and 1 deletions

View file

@ -0,0 +1,13 @@
package com.tangem.features.home.impl
import com.tangem.core.configtoggle.FeatureToggles
import com.tangem.core.configtoggle.feature.FeatureTogglesManager
import com.tangem.features.home.api.HomeFeatureToggles
internal class DefaultHomeFeatureToggles(
private val featureTogglesManager: FeatureTogglesManager,
) : HomeFeatureToggles {
override val isStoriesContainerEnabled: Boolean
get() = featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15901_STORIES_CONTAINER_ENABLED)
}

View file

@ -1,12 +1,16 @@
package com.tangem.features.home.impl.di
import com.tangem.core.configtoggle.feature.FeatureTogglesManager
import com.tangem.core.decompose.di.ModelComponent
import com.tangem.core.decompose.model.Model
import com.tangem.features.home.api.HomeComponent
import com.tangem.features.home.api.HomeFeatureToggles
import com.tangem.features.home.impl.DefaultHomeComponent
import com.tangem.features.home.impl.DefaultHomeFeatureToggles
import com.tangem.features.home.impl.model.HomeModel
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import dagger.multibindings.ClassKey
@ -22,6 +26,17 @@ internal interface ComponentModule {
fun bindComponent(factory: DefaultHomeComponent.Factory): HomeComponent.Factory
}
@Module
@InstallIn(SingletonComponent::class)
internal object HomeFeatureTogglesModule {
@Provides
@Singleton
fun provideHomeFeatureToggles(featureTogglesManager: FeatureTogglesManager): HomeFeatureToggles {
return DefaultHomeFeatureToggles(featureTogglesManager)
}
}
@Module
@InstallIn(ModelComponent::class)
internal interface ModelModule {

View file

@ -34,6 +34,7 @@ import com.tangem.domain.wallets.usecase.GenerateBuyTangemCardLinkUseCase
import com.tangem.domain.wallets.usecase.SaveWalletUseCase
import com.tangem.feature.referral.domain.ShouldShowMobileWalletPromoUseCase
import com.tangem.features.home.api.HomeComponent
import com.tangem.features.home.api.HomeFeatureToggles
import com.tangem.features.home.impl.ui.state.HomeUM
import com.tangem.features.home.impl.ui.state.Stories
import com.tangem.features.home.impl.ui.state.getRestrictedStories
@ -67,6 +68,7 @@ internal class HomeModel @Inject constructor(
private val urlOpener: UrlOpener,
private val userWalletsListRepository: UserWalletsListRepository,
private val shouldShowMobileWalletPromoUseCase: ShouldShowMobileWalletPromoUseCase,
private val homeFeatureToggles: HomeFeatureToggles,
@GlobalUiMessageSender private val uiMessageSender: UiMessageSender,
) : Model() {
@ -77,6 +79,7 @@ internal class HomeModel @Inject constructor(
private val _uiState = MutableStateFlow(
HomeUM(
scanInProgress = false,
isStoriesContainerEnabled = homeFeatureToggles.isStoriesContainerEnabled,
stories = getRestrictedStories().toImmutableList(),
onShopClick = ::onShopClick,
onSearchTokensClick = ::onSearchTokensClick,

View file

@ -4,6 +4,7 @@ import kotlinx.collections.immutable.ImmutableList
data class HomeUM(
val scanInProgress: Boolean,
val isStoriesContainerEnabled: Boolean,
val stories: ImmutableList<Stories>,
val onShopClick: () -> Unit,
val onSearchTokensClick: () -> Unit,