WELIFE Docs Swagger Admin Web

Mobile Navigation Audit — Consumer

Field Value
Date 2026-08-06
WP WP-FIGMA-FE-AUDIT-01
Navigators RootNavigator · MainTabs · MapStackNavigator · nested Reels/Social/Chat/Account stacks
Library React Navigation 7 (native-stack + bottom-tabs) — not Expo Router

Shell

Route Navigator Auth Component
boot spinner — — RootNavigator while !ready
SessionExpired overlay — SessionExpiredScreen
Auth Root stack guest AuthGate → Login / onboarding
Main Root stack USER JWT MainTabs

Main tabs (5)

Tab Stack Entry screen Domain
MapTab MapStack HomeMap D-PLACE + verticals
ReelsTab ReelsStack ReelsHome D-SOCIAL
SocialTab SocialStack SocialHome D-SOCIAL
ChatTab ChatStack ChatHome D-CHAT
AccountTab AccountStack AccountHome D-USER / wallet / settings

Counts

Metric Count
Typed route keys (approx unique) ~127
*Screen.tsx files 125
Feature folders 36

Findings

Finding Status Notes
Orphan routes (typed but unused) NOT FULLY SWEPT Need scripted cross-check Screen name ↔ navigate(
ServiceStub PRESENT Still used from HomeMap / AllServices for unfinished service tiles — FUNCTION_PARTIAL for those tiles
Duplicate Wallet routes MapStack + AccountStack both expose wallet screens Intentional deep-link from Home vs Account — document, don’t delete
Deep links (welife://) PARTIAL scheme in app.json; not fully matrixed
Role-based CON routes N/A Consumer USER only
Unknown route fallback IMP WP-NAV-CI-01 Root NotFound + onUnhandledAction · npm run audit:nav

Priority nav fixes (queue)

  1. Inventory which Home service tiles still land on ServiceStub vs real stacks (WP-FIGMA-HOME-NAV-01)
  2. Add unknown-route / fallback screen if product requires
  3. Formal deep-link matrix (future WP)

Full route param types: mobile/src/navigation/types.ts.