Skip to content

feat(mobile): Library tracks as rows, search-style filter, row press animation - #14701

Merged
dylanjeffers merged 1 commit into
mainfrom
design/mobile-library-rows
Oct 22, 2026
Merged

dylanjeffers merged 1 commit into
mainfrom
design/mobile-library-rows

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

Follow-up to #14700: the Library catches up with Trending, and rows get a real press animation.

Library Tracks tab (behind track_rows, on in production): the bordered card of art-less rows is replaced by the same TrackRow Trending uses, full-bleed: 48px artwork with the playing overlay, title with the offline download indicator, artist with badges, duration. Tap plays, long-press opens the actions (now including favorite/repost/share since there is no kebab). The flag-off path keeps the old TrackList.

Filter field: FilterInput is a flush search-style pill (surface2, search icon, clear button) instead of a shadowed Paper card with a filter icon. Same props, so Albums/Playlists, Listening History, Add to Collection and the feature-flag screen pick it up too. The client-side filter and 250 ms server query debounce are unchanged.

Row press animation (TrackRow, so Trending/profiles/search get it too): press-in scales the row to 0.985 with a surface2 highlight; release springs back. A long-press dips to 0.96 and springs back as the actions open, alongside the existing haptic. Reanimated 4 on the UI thread; the highlight is an absolute overlay so no color interpolation through transparent.

Tested on the iOS 26.5 simulator (1.5.190 Release build with this bundle swapped in, signed in): Library rows and artwork, tap to play with the equalizer overlay, long-press menu, typing a filter and clearing it, pagination skeletons. Mobile tsc and eslint are clean. Not tested: Android, offline mode with downloaded tracks, VoiceOver.

🤖 Generated with Claude Code

…animation

Library's Tracks tab renders the same TrackRow as Trending behind the
track_rows flag: artwork, title with the offline download indicator, artist
with badges, duration. Tap plays, long-press opens the actions. The old
TrackList card stays for the flag-off path.

FilterInput is now a flush search field (surface2 pill, search icon, clear
button) instead of a Paper card. Every caller keeps the same props.

TrackRow presses settle the row with a scale and surface2 highlight; a
long-press dips further and springs back as the actions open.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Oct 22, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 37bec1e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dylanjeffers
dylanjeffers merged commit ec8b394 into main Oct 22, 2026
3 checks passed
@dylanjeffers
dylanjeffers deleted the design/mobile-library-rows branch October 22, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant