Skip to content

refactor: split renderer/ui.js into router, settings panels, and domain views #58

Description

@krwg

Summary

renderer/ui.js (~5k+ lines, ~120 top-level functions) mixes navigation, chat mounts, peer profile, context menus, settings panel builders, and update checking. Split into focused modules; leave ui.js as bootstrap/wiring only.

Suggested clusters

Target Contents
renderer/view-router.js resolveMainContent, mountMainPanel, createNav, navigateToView, unread badges, …
chat.js / group chat modules remaining ensure* / mount wrappers still stuck in ui.js
renderer/peer-profile-view.js peer profile open/leave/sync/render (~7–8 functions) over profile-card.js
renderer/context-menus.js group/peer context menus
settings-ui.js / settings-panels/* all build*Settings* / buildSettings*Panel builders (~1/3 of the file; call panel is especially large)
renderer/update-checker.js semver helpers, GitHub release filter, toasts, startup check
global shortcuts wiring UI binding near existing shortcuts modules

Acceptance

  • Clusters extracted; ui.js is orchestrator-sized
  • No intentional product behavior change
  • npm test green; smoke navigation + settings + chat

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2StrategicenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions