Updated on 2026-08-14
This commit is contained in:
parent
1f27edeb70
commit
da1b0477e0
9 changed files with 114 additions and 1 deletions
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue