2 Commits

Author SHA1 Message Date
teernisse
4654f9063f feat(bd-ah2): implement InboxView container component
Implements the InboxView container that wraps the existing Inbox component
with store integration and keyboard navigation.

Key features:
- Filters and displays only untriaged inbox items from store
- Keyboard navigation (j/k or arrow keys) between items
- Triage actions (accept, defer, archive) that update store state
- Inbox zero celebration state with animation
- Real-time count updates in both view header and nav badge
- Keyboard shortcut hints in footer

TDD: Tests written first, then implementation to pass them.

Files:
- src/components/InboxView.tsx: New container component
- src/stores/inbox-store.ts: New Zustand store for inbox state
- src/components/Inbox.tsx: Added focusIndex prop for keyboard nav
- src/components/AppShell.tsx: Wire up InboxView and inbox count badge
- src/lib/types.ts: Added archived and snoozedUntil fields to InboxItem
- tests/components/Inbox.test.tsx: Added InboxView test suite
- tests/helpers/fixtures.ts: Added makeInboxItem helper

Acceptance criteria met:
- Only untriaged items shown
- Inbox zero state with animation
- Keyboard navigation works
- Triage actions update state
- Count updates in real-time
2026-02-26 11:01:44 -05:00
teernisse
175c1994fc feat: implement Inbox view with triage actions
- Add InboxItem types and TriageAction/DeferDuration types
- Create Inbox component with:
  - Accept/Defer/Archive actions for each item
  - Keyboard shortcuts (A/D/X) for fast triage
  - Defer duration picker popup
  - Inbox Zero celebration state
  - Type-specific badges with colors
- Add comprehensive tests for all functionality

Closes bd-qvc

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 10:08:54 -05:00