multica/apps/web/features/issues/components
Naiyuan Qing a2e5cbd47b refactor(issues): extract hooks from issue-detail, eliminate dual source of truth
- Remove useState<Issue> mirror anti-pattern — read directly from useIssueStore
- handleUpdateField now writes to global store (board/list sync instantly)
- handleDelete now calls removeIssue (deleted issue disappears from list)
- Extract useIssueTimeline hook (comment CRUD + WS events + reconnect)
- Extract useIssueReactions hook (issue reactions + WS events)
- Extract useIssueSubscribers hook (subscribers + WS events + rollback)
- Add useWSReconnect hook for per-component reconnect handling
- Add React.memo to BoardCardContent, DraggableBoardCard, ListRow
- Add key={id} to RichTextEditor to fix stale description on issue switch
- issue-detail.tsx: 1330 → 979 lines

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:09:17 +08:00
..
pickers feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00
agent-live-card.tsx feat(security): redact sensitive information in agent live output 2026-03-30 23:38:49 +08:00
batch-action-toolbar.tsx feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00
board-card.tsx refactor(issues): extract hooks from issue-detail, eliminate dual source of truth 2026-03-31 13:09:17 +08:00
board-column.tsx feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00
board-view.tsx feat(issues): redesign kanban board with drag sorting, filters, and display settings 2026-03-28 00:50:29 +08:00
comment-card.tsx feat(reactions): add emoji reactions for comments and issue descriptions 2026-03-30 22:37:59 +08:00
comment-input.tsx fix(issues): UI polish batch — comment input, card gap, board title, activity coalescing 2026-03-30 14:22:43 +08:00
index.ts fix(comments): fix padding, separate CommentInput from ReplyInput 2026-03-28 23:13:03 +08:00
issue-detail.tsx refactor(issues): extract hooks from issue-detail, eliminate dual source of truth 2026-03-31 13:09:17 +08:00
issues-header.tsx feat(issues): add assignee and creator filters with two-level dropdown 2026-03-31 11:04:21 +08:00
issues-page.tsx feat(issues): add assignee and creator filters with two-level dropdown 2026-03-31 11:04:21 +08:00
list-row.tsx refactor(issues): extract hooks from issue-detail, eliminate dual source of truth 2026-03-31 13:09:17 +08:00
list-view.tsx feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00
priority-icon.tsx feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00
reply-input.tsx fix(issues): UI polish batch — comment input, card gap, board title, activity coalescing 2026-03-30 14:22:43 +08:00
status-icon.tsx feat(ui): restyle issue status and priority with colored badges 2026-03-31 03:26:43 +08:00