Skip to content

iOS: per-group accordions in song Recordings section#191

Merged
dprodger merged 1 commit into
mainfrom
claude/festive-ptolemy-04b490
May 12, 2026
Merged

iOS: per-group accordions in song Recordings section#191
dprodger merged 1 commit into
mainfrom
claude/festive-ptolemy-04b490

Conversation

@dprodger
Copy link
Copy Markdown
Owner

Summary

  • Removed the outer expand/collapse chevron on the iOS song detail's Recordings section — the section is now always visible.
  • Each grouping shelf (decade when sorted by year, artist name when sorted by name) is now its own accordion row that starts collapsed, so first view of a song shows a scannable list like "1960s (12)" / "1970s (8)" or "Miles Davis (4)" / "John Coltrane (3)" with items hidden until tapped.
  • Per-group expansion state is tracked in a Set<String> keyed by group name; switching sort order clears it (since decade keys and artist-name keys don't overlap), filter changes preserve it for any surviving keys.

Test plan

  • Open a song with many recordings on iOS — Recordings header has no chevron, list of decade/artist shelves all collapsed by default.
  • Tap a shelf — it expands to show the horizontal scroll of recording cards; tap again to collapse.
  • Apply / remove a filter while a shelf is open — surviving shelves stay in their previous open/closed state; newly added shelves are collapsed.
  • Switch sort order (Year ↔ Name) — all shelves reset to collapsed.
  • Verify the "Reloading..." overlay still shows during sort-driven reloads.

🤖 Generated with Claude Code

The outer DisclosureGroup around the whole Recordings section is gone —
the section is always visible, no chevron at the top. In its place,
each grouping shelf (decade when sorted by year, artist name when
sorted by name) is now its own collapsible row that starts closed.
First view of a song now shows a scannable list of "1960s (12)",
"1970s (8)", … or "Miles Davis (4)", "John Coltrane (3)", … with the
items hidden until the user taps to open a shelf.

Expansion state lives in a Set<String> keyed by group name, so
filter changes preserve per-shelf state for keys that still exist
and naturally drop keys that don't. Switching sort order rebuilds
the keyspace entirely (decades to artist names), so the set is
cleared in that case.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@dprodger dprodger merged commit f8a1151 into main May 12, 2026
1 check passed
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