Skip to content
This repository has been archived by the owner on Feb 16, 2023. It is now read-only.

Adding Navigation Builder #34

Merged
merged 5 commits into from
May 21, 2022
Merged

Adding Navigation Builder #34

merged 5 commits into from
May 21, 2022

Conversation

dansiegel
Copy link
Member

Description

Fluent builders can be extremely helpful and on top of Prism's URI navigation. This unlocks a lot of possibilities for dynamically building a URI from adding query parameters to individual segments, to ViewModel first navigation. The Builders are finalized with a Navigate call which can be easily used whether or not you're in an async method. The overloads additionally make it easy to invoke callback logic OnSuccess or OnError.

// Shown with option OnError callback
navigationService.CreateBuilder()
                .AddNavigationSegment("MainPage")
                .AddNavigationPage()
                .AddNavigationSegment<ViewAViewModel>()
                .AddNavigationSegment("ViewB")
                .Navigate(HandleNavigationError);

// This returns the INavigationResult... 
// Also available with overloads to provide OnSuccess & OnError callbacks
navigationService.CreateBuilder()
                .AddTabbedSegment(b =>
                {
                    b.CreateTab(t => t.AddNavigationSegment<ViewAViewModel>())
                     .CreateTab("ViewB")
                     .CreateTab(t => t.AddNavigationPage().AddNavigationSegment<ViewCViewModel>())
                     .SelectTab<ViewBViewModel>();
                })
                .NavigateAsync();

@dansiegel dansiegel added the enhancement New feature or request label May 20, 2022
@dansiegel dansiegel merged commit 5dcfd4d into master May 21, 2022
@dansiegel dansiegel deleted the navigation-builder branch May 21, 2022 00:03
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant