Files
music_library/backlog/completed/ml-24 - RecordComponents-is-755-lines-with-40-mixed-functions.md
2026-05-04 21:22:27 +01:00

1.6 KiB

id, title, status, assignee, created_date, labels, dependencies, references, priority
id title status assignee created_date labels dependencies references priority
ML-24 RecordComponents is 755 lines with 40+ mixed functions Done
2026-04-20 08:51
https://github.com/cloud8421/music_library/issues/155
medium

Description

GitHub: created 2026-04-05 · updated 2026-04-12 · closed 2026-04-12

Summary

RecordComponents contains 40+ functions mixing display components (grids, lists), formatting helpers (badges, text), and structural elements (debug sheets, tooltips). At 755 lines it is difficult to navigate.

Why This Matters

  • record_list (96 lines) and record_grid (262 lines) share ~50% boilerplate for dropdown/action menus
  • Formatting helpers like format_badge/1 and format_as_text/1 are interleaved with display components
  • Adding a new record display variant requires reading through the entire module

Affected Files

  • lib/music_library_web/components/record_components.ex

Suggested Fix

Split into focused component modules:

  • RecordComponents.Grid / RecordComponents.List — display layouts
  • RecordComponents.Actions — shared dropdown/action menus
  • Keep RecordComponents for simple helpers and badges

Acceptance Criteria

  • Each module has a clear, focused purpose
  • Shared action menu markup lives in one place
  • No regression in rendering
  • #1 Each module has a clear, focused purpose
  • #2 Shared action menu markup lives in one place
  • #3 No regression in rendering