Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

[Spec] Shell: How to do Login, Onboarding, and similar scenarios #6950

Closed
davidortinau opened this issue Jul 23, 2019 · 3 comments
Closed

[Spec] Shell: How to do Login, Onboarding, and similar scenarios #6950

davidortinau opened this issue Jul 23, 2019 · 3 comments

Comments

@davidortinau
Copy link
Contributor

davidortinau commented Jul 23, 2019

Non-Navigation Pages in Shell

How might Shell make it clearer how you can add pages to AppShell.xaml that do not belong in a tab bar or flyout menu?

This could be a single page or a series of pages. Common use cases:

  • Onboarding
  • Login, Registration

In some cases the user should only see these when intended, often at the start of an app, and should not be able to return via a back navigation. This aspect is more to do with the navigation service.

https://gist.github.com/davidortinau/ab64a5f937c1f4bd44f50b9365f128e3

<Shell>
  <Stack>
    <ShellContent Route="Login" ContentTemplate="{DataTemplate LoginPage}"/>
    <ShellContent Route="Registration" ContentTemplate="{DataTemplate RegistrationPage}"/>
    <ShellContent Route="ForgotPassword" ContentTemplate="{DataTemplate ForgotPasswordPage}"/>
  </Stack>
  <TabBar>
    <Tab ../>
    <Tab ../>
  </TabBar/>
</Shell>

The first page in AppShell is displayed first. Since this proposal is not a ShellItem, no menus are displayed.

Navigation bar should be visible by default, and may be hidden.

What should this section of the app be called?

  • Stack - it is a preset stack of pages to be displayed in order or as desired by route
  • Flow - similar but a bit more descriptive perhaps

An app may have multiple, for example both an Onboarding and a Login.

<Shell>
   <Stack Route=“onboarding”>
     <ShellContent ContentTemplate="{DataTemplate Onboarding}"/>
  </Stack>
  <Stack Route=“login”>
     <ShellContent Route=“login” ContentTemplate="{DataTemplate LoginPage}"/>
    <ShellContent Route=“registration” ContentTemplate="{DataTemplate RegistrationPage}"/>
    <ShellContent Route=“forgot” ContentTemplate="{DataTemplate RecoverPasswordPage}"/>
  </Stack>

 <TabBar>
    <Tab ../>
    <Tab ../>
  </TabBar/>

</Shell>

API

[ class ]

Properties

API Description
[name] Gets or sets [description].

Events

API Description
[name] [API documentation/description]

Scenarios

Backward Compatibility

Difficulty : [low/medium/high]

@PureWeen
Copy link
Contributor

related #5272

@davidortinau
Copy link
Contributor Author

How you can do a Login or similar today with existing Shell features: https://github.com/davidortinau/ShellLoginSample

@PureWeen
Copy link
Contributor

Closing and moving discussion to here #8528

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants