Skip to content

Bottom tabs and main menu #1035

Closed
Closed
@gnprice

Description

@gnprice

This is our new design for the overall navigation of the app. It replaces the current placeholder home page. In this design:

  1. There is a bottom tab bar (aka "navigation bar", in Material 3 terms). It has 6 buttons: Inbox, Combined feed, Mentions, Direct messages, Channels, Menu.

    • All of those buttons except Menu go to screens we already have implemented. Menu is described below.
    • The navigation bar appears only on the screens that it leads directly to. In particular it does not appear on message lists.
    • Changes vs. RN legacy app: Search and Starred move from the top bar into the menu. There's no top tab bar; instead there's an app bar with the current page's title ("Inbox, "Channels", etc.).
    • For detailed design of the navigation bar, see Figma: here, and further details here. Screenshot:
      image
  2. The screen with the bottom tab bar is the root of the navigation stack; there's no navigating "back" or "up" from there. For how the user reaches the choose-account page (which we currently put at the root of the navigation stack), see below and 4.

    • We will add a button on the loading screen for the home page. When clicked, it brings the user to the choose-account page. This is necessary in case loading the account data takes a long time. This button should only appear after a few seconds of loading.
    • As a follow-up, we need to support logging out an account without UI interacting with the choose-account page UI. This means that the account can be logged out at any navigation level, which is not possible as of now (until we implement Handle invalid API key on register-queue #737 to invalidate API keys). A current side-effect of logging out is that the routes relying on the PerAccountStore of the account will be removed from the navigator stack. We need to ensure that the user ends up on choose-account page when that happens.
  3. The menu is a modal bottom sheet. It has the same options as the navigation bar (except Menu itself), plus "Starred messages".

Rationale

This design balances two things we want:

  1. It's low-risk in terms of UX, staying fairly close to what the legacy app has. We don't want to get slowed down by having to iterate a bunch.
  2. Where possible consistent with point 1, it borrows straight from more-ambitious designs we've discussed. This means it won't require scrapping a bunch of work later on as we add more features, or if we implement something more fully like those more-ambitious designs.

Related links

Metadata

Metadata

Assignees

Labels

a-designVisual and UX designa-homeThe home screens of the app; finding and starting conversations

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions