Skip to content

feat(ui): navigation drawer holding every destination - #49

Merged
SiteRelEnby merged 2 commits into
mainfrom
feat/nav-drawer
Jul 27, 2026
Merged

feat(ui): navigation drawer holding every destination#49
SiteRelEnby merged 2 commits into
mainfrom
feat/nav-drawer

Conversation

@SiteRelEnby

@SiteRelEnby SiteRelEnby commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

The problem

The bottom bar fits about five items, so everything past five drifted into Settings, which became a de-facto feature drawer. Tap paths today vs the web client:

Feature Android today Web
Analytics inside the History screen sidebar
Reminders Settings > Notifications > Reminders sidebar
Relationships Settings > System > Relationships sidebar
Files Settings > Data > Files sidebar

The route names admit it: settings/relationships, settings/notifications/reminders, settings/files.

What this does

Adds a ModalNavigationDrawer listing every destination, grouped (Tracking / Writing / Engage / System / the rest) - the Android equivalent of web's sidebar.

The bar becomes the fast path rather than the whole app:

  • Bar / rail: Home, Members, History, Journals, More.
  • Drawer: everything, including those four so the list is complete.
  • Polls moves off the bar into the drawer.
  • The bar/rail now stays on screen for drawer destinations too, with More reading as selected. Without that, stepping to Polls or Analytics would drop the app chrome entirely.

This is additive: every existing path into these screens still works, and nothing has moved out of Settings yet. That keeps it easy to reverse if the shape feels wrong on a device.

Edge-swipe is enabled only where the bar is showing, so detail screens, editors and the pan/zoom relationship graph keep their horizontal drags. An open drawer can always be swiped shut.

Sign out is not in the drawer - a session-ending action one stray edge-swipe from any screen is a footgun, so it stays in Settings > Danger zone.

Groups: a duplicate, cleaned up

Giving Groups a drawer row turned up dead code. Routes.GROUPS rendered a standalone GroupsScreen that nothing navigated to, unreachable since groups became a tab of the People screen. Awkwardly, the dead screen was the better one: the live tab had drifted to a plain flat card, while the orphan had nesting indents, tap-to-expand inline members, and an edit affordance.

So rather than delete it: the rich card is now what the Groups tab renders, the flat duplicate is gone, and Routes.GROUPS opens the People screen on its Groups tab. One groups UI, and it's the good one.

Testing

:app:assemblePlayRelease green (through R8). Device checklist:

  • Bar shows Home / Members / History / Journals / More; More opens the drawer
  • Every drawer row lands on the right screen, and the current screen's row reads as selected
  • Polls still reachable (drawer) and still works
  • On a drawer destination the bar stays put with More highlighted; Home is one tap away
  • Edge-swipe opens the drawer on top-level screens, does nothing in a member editor, and doesn't fight the relationship graph's pan
  • Back from a drawer destination returns to Home rather than stacking up
  • Groups: drawer row opens the People screen on the Groups tab; subgroups indent under parents; tapping a group expands its members; edit icon opens the group
  • Group search still filters, and a matched subgroup whose parent didn't match still shows
  • Wide screen: same entries on the rail, drawer opens over it

Features had drifted into Settings because the bottom bar only fits about five
items: Analytics sat inside the History screen, Reminders under Settings >
Notifications, Relationships under Settings > System, Files under Settings >
Data. Three-plus taps for things the web client puts one click away.

Adds a ModalNavigationDrawer listing every destination, grouped, mirroring
web's sidebar. The bar becomes the fast path rather than the whole app: Home
plus three destinations plus a "More" entry that opens the drawer. Polls moves
off the bar into the drawer. The bar/rail now stays on screen for drawer
destinations too, with "More" reading as selected, so stepping to one doesn't
strand you with no chrome.

opens the drawer only where the bar is showing, so detail screens, editors and
the pan/zoom relationship graph keep their horizontal drags. Sign out stays in

Groups gets a drawer destination too, which turned up a duplicate: the standalone
GroupsScreen behind Routes.GROUPS had been unreachable since groups became a tab
of the People screen, and the live tab had drifted to a plainer card. The dead
screen was the better one, so its card (nesting indent, expand-to-see-members,
edit affordance) is now what the tab renders, the flat duplicate is gone, and
Routes.GROUPS opens the People screen on its Groups tab.
@SiteRelEnby
SiteRelEnby enabled auto-merge July 27, 2026 04:31
@SiteRelEnby
SiteRelEnby disabled auto-merge July 27, 2026 04:31
@SiteRelEnby
SiteRelEnby merged commit 11a9569 into main Jul 27, 2026
1 check passed
@SiteRelEnby
SiteRelEnby deleted the feat/nav-drawer branch July 27, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant