-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Fix Shell Navigation for Hierarchally registered Global Routes #13330
Conversation
namespace Xamarin.Forms | ||
{ | ||
[DebuggerDisplay("RequestDefinition = {Request}, StackRequest = {StackRequest}")] | ||
internal class NavigationRequest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No changes here just moving this class to its own file
[DebuggerDisplay("Full = {FullUri}, Short = {ShortUri}")] | ||
internal class RequestDefinition | ||
{ | ||
public RequestDefinition(RouteRequestBuilder theWinningRoute, Shell shell) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No changes here just moving this class to its own file
/// <summary> | ||
/// This attempts to locate the intended route trying to be navigated to | ||
/// </summary> | ||
internal class RouteRequestBuilder |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No changes here just moving this class to its own file
Failing Tests are unrelated |
|
||
List<string> CollapsePath( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This good just got moved to ShellUriHandler.CollapsePath
@@ -475,24 +475,6 @@ void RemoveExcessPathsWithinTheRoute() | |||
} | |||
} | |||
|
|||
List<Page> BuildFlattenedNavigationStack(List<Page> startingList, IReadOnlyList<Page> modalStack) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code just got moved to ShellNavigationManager.BuildFlattenedNavigationStack
Description of Change
Fixed Hierarchical Global Route Registration so that it would correctly apply the route registered to the current state of shell
If a user is registering full route path
Route.Register("path1/path2/path3")
and Shell is currently at"path1/path2"
Then the user should be able to navigate to that route via
GotoAsync("path3")
orRoute.Register("path1/path2/path3")
Issues Resolved
Platforms Affected
Testing Procedure
PR Checklist