@@ -25,6 +25,12 @@ import kotlinx.serialization.ExperimentalSerializationApi
2525import kotlinx.serialization.KSerializer
2626import kotlinx.serialization.serializer
2727
28+ private typealias EnterTransitionFactory =
29+ (@JvmSuppressWildcards AnimatedContentTransitionScope <NavBackStackEntry >.() -> EnterTransition ? )
30+
31+ private typealias ExitTransitionFactory =
32+ (@JvmSuppressWildcards AnimatedContentTransitionScope <NavBackStackEntry >.() -> ExitTransition ? )
33+
2834/* *
2935 * Add the Composable to the NavGraphBuilder with type-safe arguments and route.
3036 *
@@ -50,10 +56,10 @@ import kotlinx.serialization.serializer
5056@MainThread
5157public inline fun <reified T : Destination > NavGraphBuilder.composable (
5258 deepLinks : List <NavDeepLink > = emptyList(),
53- noinline enterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = null,
54- noinline exitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = null,
55- noinline popEnterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = enterTransition,
56- noinline popExitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = exitTransition,
59+ noinline enterTransition : EnterTransitionFactory ? = null,
60+ noinline exitTransition : ExitTransitionFactory ? = null,
61+ noinline popEnterTransition : EnterTransitionFactory ? = enterTransition,
62+ noinline popExitTransition : ExitTransitionFactory ? = exitTransition,
5763 noinline content : @Composable T .(NavBackStackEntry ) -> Unit ,
5864) {
5965 composable(
@@ -185,10 +191,10 @@ public fun <T : Destination> NavGraphBuilder.dialog(
185191public inline fun <reified T : Destination > NavGraphBuilder.navigation (
186192 startDestination : String ,
187193 deepLinks : List <NavDeepLink > = emptyList(),
188- noinline enterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = null,
189- noinline exitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = null,
190- noinline popEnterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = enterTransition,
191- noinline popExitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = exitTransition,
194+ noinline enterTransition : EnterTransitionFactory ? = null,
195+ noinline exitTransition : ExitTransitionFactory ? = null,
196+ noinline popEnterTransition : EnterTransitionFactory ? = enterTransition,
197+ noinline popExitTransition : ExitTransitionFactory ? = exitTransition,
192198 noinline builder : NavGraphBuilder .() -> Unit ,
193199) {
194200 navigation(
@@ -219,10 +225,10 @@ public fun <T : Destination> NavGraphBuilder.navigation(
219225 serializer : KSerializer <T >,
220226 startDestination : String ,
221227 deepLinks : List <NavDeepLink > = emptyList(),
222- enterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = null,
223- exitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = null,
224- popEnterTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> EnterTransition ? ) ? = enterTransition,
225- popExitTransition : (@ JvmSuppressWildcards AnimatedContentTransitionScope < NavBackStackEntry >.() -> ExitTransition ? ) ? = exitTransition,
228+ enterTransition : EnterTransitionFactory ? = null,
229+ exitTransition : ExitTransitionFactory ? = null,
230+ popEnterTransition : EnterTransitionFactory ? = enterTransition,
231+ popExitTransition : ExitTransitionFactory ? = exitTransition,
226232 builder : NavGraphBuilder .() -> Unit ,
227233) {
228234 registerDestinationType(kClass, serializer)
0 commit comments