-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[QUESTION] how to clear stack navigating to specific destination #13
Comments
@chRyNaN There's no way to |
@chRyNaN For now I have resolved the issue by creating a enum class that implements NavigationContext starting with different initial destination, I don't really need multiple contexts, I just need a way to replace the current destination, having a way to replace current context would also be great if that could be done |
@wakaztahir Thanks for bringing up the issue. A few things here:
I will try and add this feature in an upcoming release. Unfortunately, I don't have the time to immediately work on this. I'll keep this issue alive until it is implemented. Also, I'm considering moving from a Stack to a Tree approach and removing the |
@chRyNaN I just want this library to meet my needs, which are
I don't use NavigationContext, only had to use for this issue, can't say the same for other people, I also don't really know how Tree data structure would impact this navigation library, I am perfectly fine with Stack navigation API as long as it allows all sorts of operations. For nested navigation I am also perfectly fine creating another navigator. Its your call whether tree data structure should be used or not. |
@wakaztahir Yes, a simple, easy to use API is one of the main goals of this library. And that is why I am considering removing the |
This code snippet causes infinite loop while(navigator.canPopContext()){
navigator.popContext()
} I have these functions currently @OptIn(ExperimentalNavigationApi::class)
fun <D : NavigationDestination,C : NavigationContext<D>> Navigator<D, C>.replaceAllDestinations(destination : D) {
while(canPopDestination()) {
popDestination()
}
push(destination)
}
@OptIn(ExperimentalNavigationApi::class)
fun <D : NavigationDestination,C : NavigationContext<D>> Navigator<D, C>.replaceContext(context : C) {
popContext()
push(context)
} |
@chRyNaN
I want to navigate to a destination but have nothing in the back stack, so user can't go back !
I don't know how to do it at version 0.10.0, Maybe it can be done using context (i don't know how) but it would be hard compared to this
basically I would like to do
resetTo(destination)
Use case
Account Screen -> User signs out (set initial destination to Sign in Screen)
Sign In Screen -> User signs in (set initial destination to Account Screen)
Sign Up Screen -> User signs up (set initial destination to Account Screen or Sign in Screen if he's not signed in)
Tries
router.push(SingleNavigationContext<AccountNavigation>(AccountNavigation.Account))
SingleNavigationContext's constructor is internal
The text was updated successfully, but these errors were encountered: