feat(ui): email dashboard UX refactor (PHASES 1/3/4) #44

Merged
cesnimda merged 1 commits from integ-ui into develop 2026-07-04 21:16:21 +02:00
Owner

Integrated batch of PHASES 1/3/4 (4 parallel worker units, rebased onto current develop after a stale-base issue). Split-view reading pane, email-row polish + custom checkbox, bulk/keyboard UX, dashboard heatmap->category-bar + skeletons/empty states. Integrated build green. Supersedes #40-43.

🤖 Generated with Claude Code

Integrated batch of PHASES 1/3/4 (4 parallel worker units, rebased onto current develop after a stale-base issue). Split-view reading pane, email-row polish + custom checkbox, bulk/keyboard UX, dashboard heatmap->category-bar + skeletons/empty states. Integrated build green. Supersedes #40-43. 🤖 Generated with Claude Code
cesnimda added 1 commit 2026-07-04 21:00:20 +02:00
feat(ui): email dashboard UX refactor — split-view, row polish, dashboard (PHASES 1/3/4)
CI / backend (pull_request) Successful in 2m26s
CI / frontend (pull_request) Successful in 31s
CI / format (pull_request) Successful in 1m25s
CI / db-tests (pull_request) Successful in 1m27s
Security / secrets (pull_request) Successful in 7s
Security / dependencies (pull_request) Successful in 1m18s
Security / sast (pull_request) Successful in 1m1s
2d1ca9d0d6
Batch of 4 parallel units, rebased onto current develop and integrated:
- PHASE 1 split-view: clicking an email opens an in-place, collapsible + resizable
  reading pane (shared EmailDetail extracted from Senders) instead of a new tab;
  list stays interactive, selection preserved, mobile stacks (<768px); list gains
  Skeleton loading + EmptyState. (FolderView, SearchResults, +EmailDetail, +split.css)
- PHASE 3 row polish: EmailRow gains onOpen (Gmail fallback kept), a new accessible
  Checkbox primitive (ui/checkbox.jsx), 44px rows, clearer hierarchy + hover; keeps
  the search why-matched highlight rendering. (EmailRow, ui/checkbox, styles.css)
- PHASE 4 bulk+keys: BulkToolbar hierarchy/responsive/clear-selection; keyboard nav
  adds ArrowUp/Down + u=unread, hardened input guard. (BulkToolbar, useListKeyboardNav)
- PHASE 3/4 dashboard: remove dead HeatmapWidget, replace CategoryHeatmap with a
  clickable Emails-by-Category bar (a11y: rank by text+count, not colour); Skeleton +
  EmptyState on widgets. (widgets, Dashboard, client.js, styles.css)

Each unit was self-code-reviewed and built green; integrated build passes. Supersedes
PRs #40-43 (their branches had a stale 38-commit base).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
cesnimda merged commit 2f173dc3e5 into develop 2026-07-04 21:16:21 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cesnimda/Inboxintel#44