Closed Zhuinden closed 4 years ago
I still think this is actually breaking, so I'm delaying it.
But this still bothers me.
The PR managed to keep all test in-tact, wow.
But with certain limitations, such as replaceTop
for example is also technically "back/forward" but not considered "terminal".
This change needs more testing in a real environment.
replaceTop
is now terminal.
Seems to be working as intended. I should have done this sooner.
Currently it is possible to send in such invalid input that while navigating back, you also try navigating forward. This can create an invalid navigation history, which breaks the reliance on implicit scoping.
So by mashing the right buttons, you can do either:
[A, B]
->[A, B, C]
or
[A, B]
->[A]
->[A, C]
If you use implicit scopes, lookups from
C
will fail.After a very long consideration, the enqueue logic of reentrancy should ignore additional navigation actions during a back navigation, potentially triggered by
jumpToRoot
andgoBack
.