feat(tui): single-dashboard layout with sidebar and overlay #162

Merged
lerko merged 1 commits from feat/single-dashboard into main 2026-06-29 22:18:00 +00:00
Owner

Summary

Eliminates the 3-tab navigation (Monitors/Maint/Settings) and consolidates into a single monitoring dashboard, inspired by btop/lazygit panel patterns.

  • Status line replaces tab bar: ● 12/14 UP · 1 maint · 3 probes with right-aligned version
  • Maintenance left sidebar (m key): compact active/scheduled list, Enter for full-screen detail
  • Settings floating overlay (S key): centered panel with Alerts/Nodes/Users sub-sections, full CRUD
  • No more tabs: currentTab, switchTab, tab click zones all removed
  • Panel focus cycle: maint → monitors → logs → detail
  • Context-sensitive footer key hints per focused panel

Before → After

  • Tab bar + panel title redundancy → status line + panel titles only
  • 3 separate pages → 1 dashboard with toggleable panels + overlay
  • ~2 lines more vertical space for content

Test plan

  • Dashboard renders with status line, no tab bar
  • m toggles maint sidebar (wide terminals only)
  • Enter on maint item opens full-screen detail (type, status, timing, description)
  • x/d work from maint detail, q/Esc returns with maint panel focused
  • S opens settings overlay, Esc/S closes
  • Left/right navigates Alerts → Nodes → Users inside overlay
  • n/e/d/t/i work inside settings overlay
  • Forms opened from overlay return to overlay on submit/cancel
  • Delete confirm from overlay returns to overlay
  • i opens inline detail, Enter opens full-screen detail
  • All keyboard flows: / filter, l logs, T theme, p pause, space collapse
  • Mouse clicks between panels switch focus correctly
  • Theme switch applies to all panels including overlay
  • Narrow terminal (< 120 cols): maint sidebar hidden
## Summary Eliminates the 3-tab navigation (Monitors/Maint/Settings) and consolidates into a single monitoring dashboard, inspired by btop/lazygit panel patterns. - **Status line** replaces tab bar: `● 12/14 UP · 1 maint · 3 probes` with right-aligned version - **Maintenance left sidebar** (`m` key): compact active/scheduled list, Enter for full-screen detail - **Settings floating overlay** (`S` key): centered panel with Alerts/Nodes/Users sub-sections, full CRUD - **No more tabs**: `currentTab`, `switchTab`, tab click zones all removed - **Panel focus cycle**: maint → monitors → logs → detail - Context-sensitive footer key hints per focused panel ### Before → After - Tab bar + panel title redundancy → status line + panel titles only - 3 separate pages → 1 dashboard with toggleable panels + overlay - ~2 lines more vertical space for content ## Test plan - [x] Dashboard renders with status line, no tab bar - [x] `m` toggles maint sidebar (wide terminals only) - [x] Enter on maint item opens full-screen detail (type, status, timing, description) - [x] `x`/`d` work from maint detail, `q`/`Esc` returns with maint panel focused - [x] `S` opens settings overlay, `Esc`/`S` closes - [x] Left/right navigates Alerts → Nodes → Users inside overlay - [x] `n`/`e`/`d`/`t`/`i` work inside settings overlay - [x] Forms opened from overlay return to overlay on submit/cancel - [x] Delete confirm from overlay returns to overlay - [x] `i` opens inline detail, Enter opens full-screen detail - [x] All keyboard flows: `/` filter, `l` logs, `T` theme, `p` pause, space collapse - [x] Mouse clicks between panels switch focus correctly - [x] Theme switch applies to all panels including overlay - [x] Narrow terminal (< 120 cols): maint sidebar hidden
lerko added 1 commit 2026-06-29 20:13:15 +00:00
feat(tui): single-dashboard layout with sidebar and overlay
CI / test (pull_request) Successful in 1m44s
CI / lint (pull_request) Successful in 1m16s
CI / vulncheck (pull_request) Successful in 50s
1856820c3e
Replace 3-tab navigation with a single monitoring dashboard.

- Replace tab bar with minimal status line (pulse + counts + version)
- Maintenance becomes a toggleable left sidebar (m key)
  - Compact list: active (●) and scheduled (○) windows
  - Enter opens full-screen detail with end/delete actions
- Settings becomes a centered floating overlay (S key)
  - Alerts/Nodes/Users sub-sections with left/right navigation
  - Full CRUD support inside overlay with returnState tracking
- Remove currentTab, switchTab, tab constants, tab click zones
- Replace deleteTab with deleteKind string for cleaner dispatch
- Separate settingsCursor/settingsOffset from main cursor
- Panel focus: maint → monitors → logs → detail
- Context-sensitive footer key hints per focused panel
lerko merged commit 1856820c3e into main 2026-06-29 22:18:00 +00:00
lerko deleted branch feat/single-dashboard 2026-06-29 22:18:00 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerkolabs/uptop#162