Skip to content

Extract FileTree and DiffPane from changes-tab.tsx (940 → 358 lines)#780

Merged
selfcontained merged 2 commits into
mainfrom
agt_569f7ed7b900/job-componentizer-93a54914
Jul 16, 2026
Merged

Extract FileTree and DiffPane from changes-tab.tsx (940 → 358 lines)#780
selfcontained merged 2 commits into
mainfrom
agt_569f7ed7b900/job-componentizer-93a54914

Conversation

@selfcontained

Copy link
Copy Markdown
Owner

Summary

  • Extracted the FileTree cluster (FileTree, TreeEntry, buildTree, collapseTree, treeFileIcon + types) into changes-file-tree.tsx (231 lines)
  • Extracted the DiffPane cluster (DiffPane, FileDiffSection, FileDiffContent, statusIcon + types) into changes-diff-section.tsx (371 lines)
  • changes-tab.tsx now contains only the ChangesTab orchestrator component (358 lines, down from 940)

This is a pure structural refactoring — no behavior, UI, or rendering changes. All three pieces were already logically independent within the original file.

New file structure

changes-tab.tsx           358 lines  (was 940)  — ChangesTab state management + layout
changes-file-tree.tsx     231 lines  (new)      — File tree sidebar
changes-diff-section.tsx  371 lines  (new)      — Diff rendering pipeline

Next run

Queued: notification-settings.tsx (646 lines) — extract setting sections into subcomponents.

Test plan

  • pnpm run finalize:web — type check + production build passes
  • pnpm run test:e2e — 122/123 passed; 1 pre-existing flake (split-pane unsplit timeout)

🤖 Generated with Claude Code

selfcontained and others added 2 commits July 16, 2026 02:08
…9 lines)

Splits the oversized changes-tab.tsx into three focused files:
- changes-file-tree.tsx (231 lines): FileTree sidebar with tree building/collapsing logic
- changes-diff-section.tsx (371 lines): DiffPane, FileDiffSection, and FileDiffContent
- changes-tab.tsx (358 lines): ChangesTab orchestrator with state management

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@selfcontained
selfcontained merged commit 32cd656 into main Jul 16, 2026
1 check passed
@selfcontained
selfcontained deleted the agt_569f7ed7b900/job-componentizer-93a54914 branch July 16, 2026 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant