Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-22 10:31:37 +02:00
parent e4754fed3b
commit b84c9b4f1c
2 changed files with 2 additions and 35 deletions

View file

@ -24,11 +24,10 @@ import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
import com.tangem.features.onboarding.v2.impl.R
import com.tangem.features.onboarding.v2.note.api.OnboardingNoteComponent
import com.tangem.features.onboarding.v2.note.impl.child.create.OnboardingNoteCreateWalletComponent
import com.tangem.features.onboarding.v2.note.impl.model.OnboardingNoteModel
import com.tangem.features.onboarding.v2.note.impl.model.OnboardingNoteCommonState
import com.tangem.features.onboarding.v2.note.impl.model.OnboardingNoteModel
import com.tangem.features.onboarding.v2.note.impl.route.ONBOARDING_NOTE_STEPS_COUNT
import com.tangem.features.onboarding.v2.note.impl.route.OnboardingNoteRoute
import com.tangem.features.tokenreceive.TokenReceiveComponent
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@ -41,7 +40,6 @@ internal class DefaultOnboardingNoteComponent @AssistedInject constructor(
@Assisted context: AppComponentContext,
@Assisted val params: OnboardingNoteComponent.Params,
val onboardingDoneComponentFactory: OnboardingDoneComponent.Factory,
private val tokenReceiveComponentFactory: TokenReceiveComponent.Factory,
) : OnboardingNoteComponent, AppComponentContext by context {
private val model: OnboardingNoteModel = getOrCreateModel(params)
@ -111,7 +109,6 @@ internal class DefaultOnboardingNoteComponent @AssistedInject constructor(
mode = OnboardingDoneComponent.Mode.WalletCreated,
onDone = { params.onDone() },
),
tokenReceiveComponentFactory = tokenReceiveComponentFactory,
)
}
}

View file

@ -2,27 +2,19 @@ package com.tangem.features.onboarding.v2.twin.impl
import androidx.activity.compose.BackHandler
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.arkivanov.decompose.ComponentContext
import com.arkivanov.decompose.extensions.compose.subscribeAsState
import com.arkivanov.decompose.router.slot.childSlot
import com.arkivanov.decompose.router.slot.dismiss
import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.decompose.context.childByContext
import com.tangem.core.decompose.model.getOrCreateModel
import com.tangem.core.decompose.navigation.inner.InnerNavigation
import com.tangem.core.decompose.navigation.inner.InnerNavigationHolder
import com.tangem.core.decompose.navigation.inner.InnerNavigationState
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.domain.models.TokenReceiveConfig
import com.tangem.features.onboarding.v2.impl.R
import com.tangem.features.onboarding.v2.twin.api.OnboardingTwinComponent
import com.tangem.features.onboarding.v2.twin.impl.model.OnboardingTwinModel
import com.tangem.features.onboarding.v2.twin.impl.ui.OnboardingTwin
import com.tangem.features.tokenreceive.TokenReceiveComponent
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@ -31,18 +23,10 @@ import kotlinx.coroutines.flow.StateFlow
internal class DefaultOnboardingTwinComponent @AssistedInject constructor(
@Assisted appComponentContext: AppComponentContext,
@Assisted params: OnboardingTwinComponent.Params,
private val tokenReceiveComponentFactory: TokenReceiveComponent.Factory,
) : OnboardingTwinComponent, AppComponentContext by appComponentContext, InnerNavigationHolder {
private val model: OnboardingTwinModel = getOrCreateModel(params)
private val bottomSheetSlot = childSlot(
source = model.bottomSheetNavigation,
serializer = TokenReceiveConfig.serializer(),
handleBackButton = false,
childFactory = ::bottomSheetChild,
)
init {
params.titleProvider.changeTitle(resourceReference(R.string.twins_recreate_toolbar))
}
@ -58,28 +42,14 @@ internal class DefaultOnboardingTwinComponent @AssistedInject constructor(
@Composable
override fun Content(modifier: Modifier) {
BackHandler { model.onBack() }
val bottomSheet by bottomSheetSlot.subscribeAsState()
val state by model.uiState.collectAsStateWithLifecycle()
OnboardingTwin(
state = state,
modifier = modifier,
)
bottomSheet.child?.instance?.BottomSheet()
}
private fun bottomSheetChild(
config: TokenReceiveConfig,
componentContext: ComponentContext,
): ComposableBottomSheetComponent = tokenReceiveComponentFactory.create(
context = childByContext(componentContext),
params = TokenReceiveComponent.Params(
config = config,
onDismiss = model.bottomSheetNavigation::dismiss,
),
)
data class TwinInnerNavigationState(
override val stackSize: Int,
) : InnerNavigationState {