[story #119] Frontend: Mailbox Owner Dashboard (INB-1.5-A-S4) #146

Merged
grimacing merged 1 commits from fe/INB-1.5-A-ui-impl-v2 into release/v1.5 2026-06-11 03:24:47 +00:00
Contributor

Story #119

Traces to: Epic #112 → INTV-5 #109 → MAJOR v1 #99.

Design bundle ref (Pattern B): Story #118 (UX spec — closed, cto-approved).
API contract ref (Pattern B): Story #116 (API spec — closed, cto-approved).
Component: src/mailbox/MailboxDashboard.tsx
Storybook story: src/mailbox/MailboxDashboard.stories.tsx (a11y addon enabled)
A11y level: WCAG 2.1 AA

Test plan: unit + component tests (16 tests, all passing); e2e for critical paths; CI must be green; a11y addon must pass.

Changes:

  • New: src/mailbox/MailboxDashboard.tsx — three-column responsive layout (sidebar + list + detail) per UX spec
  • New: src/mailbox/MailboxDashboard.css — responsive styles per design-system tokens
  • New: src/mailbox/MailboxDashboard.stories.tsx — Storybook story with a11y addon
  • New: src/mailbox/MailboxDashboard.test.tsx — 16 unit + component tests
  • New: src/mailbox/index.ts — barrel export
  • New: src/api/mailbox.ts — type-safe client for list, get, patch-status endpoints per OpenAPI contract
  • New: src/api/index.ts — barrel export
  • Updated: shared components (AppShell, ResponsiveGrid, SidebarNav, StatusMessage) — rebased onto release/v1.5 (Story #134 merge)

Rebase note: The original fe/INB-1.5-A-ui-impl branch was based on a pre-Story-134 release/v1.5. This PR rebases onto the current release/v1.5 to incorporate the responsive layout and design-system compliance changes from Story #134. Conflicts in shared components were resolved by taking the release/v1.5 (already-merged) versions; no regressions introduced.

Reviewer: @cto-ciagent (default Pillar III gate reviewer).


This PR is the Pillar III gate for Story #119. Merge into release/v1.5. Comments are append-only.

## Story #119 **Traces to:** Epic #112 → INTV-5 #109 → MAJOR v1 #99. **Design bundle ref (Pattern B):** Story #118 (UX spec — closed, cto-approved). **API contract ref (Pattern B):** Story #116 (API spec — closed, cto-approved). **Component:** `src/mailbox/MailboxDashboard.tsx` **Storybook story:** `src/mailbox/MailboxDashboard.stories.tsx` (a11y addon enabled) **A11y level:** WCAG 2.1 AA **Test plan:** unit + component tests (16 tests, all passing); e2e for critical paths; CI must be green; a11y addon must pass. **Changes:** - New: `src/mailbox/MailboxDashboard.tsx` — three-column responsive layout (sidebar + list + detail) per UX spec - New: `src/mailbox/MailboxDashboard.css` — responsive styles per design-system tokens - New: `src/mailbox/MailboxDashboard.stories.tsx` — Storybook story with a11y addon - New: `src/mailbox/MailboxDashboard.test.tsx` — 16 unit + component tests - New: `src/mailbox/index.ts` — barrel export - New: `src/api/mailbox.ts` — type-safe client for list, get, patch-status endpoints per OpenAPI contract - New: `src/api/index.ts` — barrel export - Updated: shared components (AppShell, ResponsiveGrid, SidebarNav, StatusMessage) — rebased onto release/v1.5 (Story #134 merge) **Rebase note:** The original `fe/INB-1.5-A-ui-impl` branch was based on a pre-Story-134 release/v1.5. This PR rebases onto the current release/v1.5 to incorporate the responsive layout and design-system compliance changes from Story #134. Conflicts in shared components were resolved by taking the release/v1.5 (already-merged) versions; no regressions introduced. **Reviewer:** @cto-ciagent (default Pillar III gate reviewer). --- *This PR is the Pillar III gate for Story #119. Merge into `release/v1.5`. Comments are append-only.*
frontend-engineer added 1 commit 2026-06-11 03:10:50 +00:00
- MailboxDashboard component with email list, search/filter, detail view
- Type-safe API adapter for mailbox endpoints (listMessages, getMessage, patchStatus)
- MailboxApiError class for structured error handling
- Client-side observability hooks (useErrorReporting, usePerformanceMetrics)
- 16 unit tests covering rendering, interactions, accessibility, error states
- Storybook stories with a11y addon enabled (4 stories: Default, WithDetail, EmptyState, WithPagination)
- Conforms to UX spec (#118) and API contract (#116)
- Reuses design-system tokens, AppShell, SidebarNav, StatusBadge components
- WCAG 2.2 Level AA: role=list, aria-label, aria-current, keyboard nav, focus-visible
- Responsive: three-column (lg), two-column (md), single-column (sm)
- Design-system lint clean: no hardcoded colors, all tokens/var() references

Co-Authored-By: Paperclip <noreply@paperclip.ing>
frontend-engineer requested review from cto-ciagent 2026-06-11 03:10:54 +00:00
grimacing merged commit 5cfa34631a into release/v1.5 2026-06-11 03:24:47 +00:00
grimacing deleted branch fe/INB-1.5-A-ui-impl-v2 2026-06-11 03:24:47 +00: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: coreci/inboxos-v1#146