Updated on 2026-08-14

This commit is contained in:
Tangem 2024-12-18 17:35:32 +04:00
parent 20eba62956
commit 2ab4b3a66d
6 changed files with 121 additions and 32 deletions

View file

@ -0,0 +1,47 @@
package com.tangem.tap.routing
import android.app.Activity
import android.os.Bundle
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.ContextCompat.startActivity
import com.arkivanov.decompose.extensions.compose.jetpack.stack.Children
import com.arkivanov.decompose.router.stack.ChildStack
import com.tangem.common.routing.AppRoute
import com.tangem.core.ui.UiDependencies
import com.tangem.core.ui.res.TangemTheme
import com.tangem.tap.routing.component.RoutingComponent
@Composable
internal fun RootContent(
stack: ChildStack<AppRoute, RoutingComponent.Child>,
uiDependencies: UiDependencies,
modifier: Modifier = Modifier,
) {
val context = LocalContext.current
TangemTheme(
activity = context as Activity,
uiDependencies = uiDependencies,
) {
Children(
modifier = modifier,
stack = stack,
) { child ->
when (val instance = child.instance) {
is RoutingComponent.Child.Initial -> Unit
is RoutingComponent.Child.ComposableComponent -> {
instance.component.Content(Modifier.fillMaxSize())
}
is RoutingComponent.Child.LegacyIntent -> {
// TODO: Remove and use it's own router: [REDACTED_JIRA]
startActivity(context, instance.intent, Bundle.EMPTY)
}
is RoutingComponent.Child.LegacyFragment,
-> error("Unsupported child: $instance")
}
}
}
}