-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
AndroidNavContainer.kt
26 lines (22 loc) · 926 Bytes
/
AndroidNavContainer.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.chrynan.navigation.compose
import androidx.compose.foundation.layout.Box
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import com.chrynan.navigation.ExperimentalNavigationApi
import com.chrynan.navigation.NavigationContext
import com.chrynan.navigation.NavigationDestination
import com.chrynan.navigation.Navigator
@Suppress("unused")
@Composable
@ExperimentalNavigationApi
fun <Destination : NavigationDestination, Context : NavigationContext<Destination>> NavContainer(
navigator: Navigator<Destination, Context>,
modifier: Modifier,
content: @Composable ComposeNavigationScope.(context: Context, destination: Destination) -> Unit
) {
val context = navigator.state.currentContextAsState()
val destination = navigator.state.currentDestinationAsState()
Box(modifier = modifier) {
content(ComposeNavigationScope, context.value, destination.value)
}
}