feat(nav): reveal toolbar on page change, drop dashboard-scroller#204
Conversation
The auto-hiding toolbar's page-icon strip is now the transient page-position indicator. An effect reveals the toolbar whenever the active page changes, covering swipe, hotkey, tap and remote navigation since all route through the activeDashboard signal. Removes the dashboard-scroller component, whose vertical column of position dots read wrong once page navigation became horizontal. The toolbar's icon strip supersedes it: it names the active page rather than showing an anonymous, orientation-dependent dot. Closes #195. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018zURudCY3TTRcNd2acknJ9
6241a26 to
b466a82
Compare
Code review — reveal toolbar on page changeScope: Reviewers (5, independent fresh-context): correctness, testing, maintainability, project-standards (always-on) + adversarial (component-deletion + >50 changed lines). Security / api-contract / reliability not applicable — no auth, endpoints, contracts, or error-handling surface. No P0/P1. The mechanical risks of a component removal were all checked and cleared: no dangling references anywhere (grep-clean repo-wide, dir removed, import + P2 — Moderate (fixed in this review cycle)
P3 — Low
Applied fixes
Design considerations (author's call — not defects)These are behavioral differences from the removed scroller. The PR already owns the "heavier feedback" tradeoff; these sharpen three specific points:
Coverage
Verdict: Ready to mergeThe one actionable defect (#1) was fixed in-cycle. #3 and the design considerations are the author's call and don't block; none are correctness bugs. |
Part of the navigation UX redesign (epic #183). Supersedes #195.
Why
The transient
dashboard-scrollershowed page position as a vertical column of dots on the right edge — a leftover from when page nav was a vertical motion. Page nav is now horizontal, so the dot stack reads wrong (#195 asked to reorient it).Rather than reorient a second indicator, this consolidates onto the one the toolbar already has. The auto-hiding toolbar's
page-nav-controlstrip shows every page as its own icon in a horizontal row with the active one highlighted — a horizontal cue that matches horizontal nav, with larger touch targets. (Note: the strip is icon-only; the page name is on the icon'saria-label, not rendered as text. For pages sharing the default icon the cue is position-only, like the dots but horizontal.)What
app.component.ts: an effect reveals the toolbar wheneveractiveDashboard()changes to a non-null page. Driving it off the signal covers swipe, hotkey, tap and remote navigation uniformly (all route through it), matching the old scroller's reach.dashboard-scrollercomponent (ts/html/scss/spec) and its usage + import indashboard.component.app.component.spec.ts— reveal fires on page change, fires again on each subsequent change, and does not fire on a transition to no active page.Tradeoff
Revealing the full toolbar is heavier feedback than a bare dot row, and it removes the "flip pages with chrome hidden" mode. For a marine MFD, seeing the page position in the toolbar beats a clean screen, so this is the intended trade. The toolbar is an overlay (no grid reflow) and auto-hides on its existing idle timer, preserving the transient behavior #195 wanted to keep. Heavier chrome on passively-viewed remote/repeater displays is a known consequence (see review thread).
Verification
npm run lint— clean.app.component.spec.ts12/12,dashboard.component.spec.ts13/13 locally (CI Node 20/22/24 is source of truth).Closes #195.