1.6 KiB
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 |
|
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) andrecord_grid(262 lines) share ~50% boilerplate for dropdown/action menus- Formatting helpers like
format_badge/1andformat_as_text/1are 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 layoutsRecordComponents.Actions— shared dropdown/action menus- Keep
RecordComponentsfor 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