What problem does it solve?
It prevents navigation drift and duplicated UI logic by making the app’s sidebar and mobile tabs render from a single declarative navigation config with consistent role-based filtering.
Core Features & Use Cases
- Config-driven navigation (SSOT): Define all routes once in
src/config/navigation.ts, and have Sidebar, BottomNav, and BottomNavMoreSheet consume the same registry.
- RBAC runtime filtering: Apply role visibility consistently at render time using
filterNavigationByRole, getBottomNavItems, and getMoreSheetItems.
- Mobile composition with overflow: Enforce the “max 4 tabs + Más” behavior, preserve grouped items in the overflow sheet, and support collapsible sections.
- Notifications badge integration: Show unread-count badges on the appropriate nav items when notifications are enabled.
- iOS safe-area handling: Respect
env(safe-area-inset-bottom) so the bottom UI doesn’t get covered by the home indicator.
Quick Start
Add or modify your new link by editing only src/config/navigation.ts, then verify visibility across Sidebar, BottomNav, and the More sheet using the appropriate user role.