Role-Aware Bottom Navigation Tabs
The role-aware bottom navigation bar renders a tab set dynamically determined by the user's active role. For coordinators, this includes Home, Contacts, Add (with coordinator-specific action menu), Work (proxy registrations, pause management), and Notifications. Tabs available only to admins or peer mentors are hidden. The tab configuration is driven by the role state manager, and the bottom nav component reads role context at build time. Tab state is preserved across navigation using StatefulShellRoute so coordinators do not lose their position when switching between tabs.
User Story
Acceptance Criteria
- Given a coordinator is logged in, When the bottom navigation renders, Then exactly the coordinator-permitted tabs are visible and no admin-only tabs appear
- Given a coordinator switches to a peer mentor role using the role switch widget, When the switch completes, Then the bottom navigation updates to show peer mentor tabs
- Given a coordinator is on the Contacts tab and navigates to a contact detail then back, When they return to the tab, Then their scroll position and list state are preserved
- Given a coordinator with accessibility settings enabled, When the bottom nav renders, Then each tab has a correct semantic label announced by screen reader
Business Value
A clutter-free navigation bar reduces cognitive load, which is a top-priority design principle explicitly requested by all three organizations. Showing irrelevant tabs confuses users and undermines trust in the application, particularly for coordinators who may be less digitally experienced.
Components
- Role-Aware Bottom Navigation ui
- Role State Manager service
- Role Switch Widget ui
- Role Resolution Service service