diff --git a/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/PaneScope.kt b/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/PaneScope.kt index acaf5ef..576f3e1 100644 --- a/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/PaneScope.kt +++ b/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/PaneScope.kt @@ -18,8 +18,6 @@ package com.tunjid.treenav.compose import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.AnimatedVisibilityScope -import androidx.compose.animation.EnterTransition -import androidx.compose.animation.ExitTransition import androidx.compose.runtime.Stable import androidx.compose.runtime.State import androidx.compose.runtime.getValue @@ -45,13 +43,6 @@ interface PaneScope : AnimatedVisibilityScope { */ val isActive: Boolean - /** - * Describes how a destination transitions after an adaptive change - */ - data class Transitions( - val enter: EnterTransition, - val exit: ExitTransition, - ) } /** diff --git a/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/threepane/ThreePane.kt b/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/threepane/ThreePane.kt index f7d5911..8a9e51d 100644 --- a/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/threepane/ThreePane.kt +++ b/library/compose/src/commonMain/kotlin/com/tunjid/treenav/compose/threepane/ThreePane.kt @@ -108,42 +108,33 @@ fun threePaneEntry( paneTransform = paneMapping, renderTransform = { destination, original -> val state = paneState - val modifier = when (state.pane) { + val shouldAnimate = when (state.pane) { ThreePane.Primary, ThreePane.Secondary, -> when { - ThreePane.PrimaryToSecondary in state.adaptations - || ThreePane.SecondaryToPrimary in state.adaptations - -> Modifier - - else -> Modifier - .animateEnterExit( - enter = enterTransition(), - exit = exitTransition() - ) + ThreePane.PrimaryToSecondary in state.adaptations -> false + ThreePane.SecondaryToPrimary in state.adaptations -> false + else -> true } ThreePane.TransientPrimary -> when { - ThreePane.PrimaryToTransient in state.adaptations -> Modifier - - else -> Modifier - .animateEnterExit( - enter = enterTransition(), - exit = exitTransition() - ) + ThreePane.PrimaryToTransient in state.adaptations -> false + else -> true } - else -> Modifier - .animateEnterExit( - enter = enterTransition(), - exit = exitTransition() - ) + else -> true } Box( - modifier = modifier - ) { - original(destination) - } + modifier = + if (shouldAnimate) Modifier.animateEnterExit( + enter = enterTransition(), + exit = exitTransition() + ) + else Modifier, + content = { + original(destination) + } + ) }, content = render @@ -160,8 +151,3 @@ private val DefaultFadeIn = fadeIn( private val DefaultFadeOut = fadeOut( animationSpec = RouteTransitionAnimationSpec, ) - -private val NoTransition = PaneScope.Transitions( - enter = EnterTransition.None, - exit = ExitTransition.None, -) \ No newline at end of file