Skip to content

[CHORE] Split oversized UI pages and layout components #133

Description

@martian56

Summary
Several UI files have grown large enough that they are hard to review and maintain.

Examples

  • ui/src/pages/SettingsPage.tsx is about 188 KB.
  • ui/src/components/layout/PageHeader.tsx is about 151 KB.
  • ui/src/pages/IssueDetailPage.tsx is about 75 KB.
  • ui/src/components/layout/Sidebar.tsx is about 54 KB.
  • ui/src/pages/CyclesPage.tsx is about 55 KB.

Why this matters
Large page and layout files make small changes risky. They mix data loading, filtering, UI state, modals, menu logic, and rendering in one place. This slows reviews and makes regressions more likely.

Suggested fix
Split the biggest files into focused components and hooks. A good first pass would be:

  • Settings sections into separate files by section.
  • PageHeader menus and filter panels into smaller components.
  • Issue detail sidebars, modals, and data hooks into separate modules.
  • Shared filter and display state logic into reusable hooks.

Acceptance criteria

  • SettingsPage is split into section-level components.
  • PageHeader is split into focused menu/filter components.
  • IssueDetailPage extracts sidebars and modal logic.
  • Behavior stays the same, with typecheck and lint passing.

Checked on
main at f8e5946

Metadata

Metadata

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions