Skip to content

Commit 42a4a40

Browse files
committed
fix: only run screen transitions for push/pop
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 85419ef commit 42a4a40

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

app/src/main/java/com/getcode/CodeApp.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import androidx.compose.runtime.remember
1616
import androidx.compose.runtime.setValue
1717
import androidx.compose.ui.Modifier
1818
import androidx.compose.ui.platform.LocalContext
19+
import cafe.adriel.voyager.core.stack.StackEvent
1920
import cafe.adriel.voyager.navigator.CurrentScreen
2021
import cafe.adriel.voyager.navigator.Navigator
2122
import cafe.adriel.voyager.transitions.ScreenTransition
@@ -75,9 +76,16 @@ fun CodeApp() {
7576
modifier = Modifier
7677
.padding(innerPaddingModifier)
7778
) {
78-
when (navigator.lastItem) {
79-
is LoginScreen, is MainRoot -> CrossfadeTransition(navigator = navigator)
80-
else -> SlideTransition(navigator = navigator)
79+
when (navigator.lastEvent) {
80+
StackEvent.Push,
81+
StackEvent.Pop -> {
82+
when (navigator.lastItem) {
83+
is LoginScreen, is MainRoot -> CrossfadeTransition(navigator = navigator)
84+
else -> SlideTransition(navigator = navigator)
85+
}
86+
}
87+
StackEvent.Idle,
88+
StackEvent.Replace -> CurrentScreen()
8189
}
8290
}
8391
}

0 commit comments

Comments
 (0)