ymaskin
04/23/2025, 11:22 AMpopUpTo
which doesn't pop anything from the Backstack. The navigation success but just adding it on top of the existing one.
Any idea / Known bugs in this area?Konstantin Tskhovrebov
04/23/2025, 11:49 AMpopUpTo<destination>()
instead of popUpTo(destination)
ymaskin
04/23/2025, 1:58 PMKonstantin Tskhovrebov
04/23/2025, 2:19 PMymaskin
04/23/2025, 2:21 PMKonstantin Tskhovrebov
04/23/2025, 2:25 PMKonstantin Tskhovrebov
04/23/2025, 2:25 PMymaskin
04/23/2025, 2:26 PMymaskin
04/23/2025, 2:27 PMsealed interface NavigationAction {
data class Navigate(
val destination: Destination,
val navOptions: NavOptionsBuilder.() -> Unit = {},
) : NavigationAction
data object NavigateUp : NavigationAction
}
interface Navigator {
val startDestination: Destination
val navigationActions: Flow<NavigationAction>
suspend fun navigate(
destination: Destination,
navOptions: NavOptionsBuilder.() -> Unit = {},
)
suspend fun navigateUp()
}
class DefaultNavigator(
override val startDestination: Destination,
) : Navigator {
private val _navigationActions = Channel<NavigationAction>()
override val navigationActions = _navigationActions.receiveAsFlow()
override suspend fun navigate(
destination: Destination,
navOptions: NavOptionsBuilder.() -> Unit
) {
_navigationActions.send(
NavigationAction.Navigate(
destination = destination,
navOptions = navOptions
)
)
}
override suspend fun navigateUp() {
_navigationActions.send(NavigationAction.NavigateUp)
}
}
Konstantin Tskhovrebov
04/23/2025, 2:27 PMymaskin
04/23/2025, 5:41 PM