feat(label): web-parity header actions, catalog/library toggle, label cards
LabelView parity with the revamped Qobuz web label page (semantics verified live against play.qobuz.com via Playwright): - Header: Follow + Shuffle (new play_label_top_shuffled, shuffle-then- delegate to play_tracks_ctx) + overflow menu (Play next / Add to queue / Share -> play.qobuz.com/label/<id>; no Song.link equivalent for labels). No header Play by owner decision (the Popular Tracks play does the same). - The Popular Tracks section '...' button was dead (fired an unhandled 'top-tracks-menu' action): now a popup with Play next / Add to queue over all cached popular tracks. Section buttons wrapped so the 44px primary and 32px secondaries share one vertical centre. - Catalog/library toggle: the ArtistPage SegmentedTabBar verbatim, floated right of the header cluster (visible only with library items; mirrors the web's A/B-rolled 'Del catalogo / En la biblioteca'). Library tab renders added tracks + albums on the label, backed by the new library_by_label session index (AlbumCard.label_id / TrackCard.label_id, seeded from the SAME two favorites fetches as library_by_artist). - More Labels carousel now renders the Library LabelCard (new label-cards mode in ArtistCarousel) instead of the legacy generic card. - Artists carousel images: /label/page top_artists often carry no parseable image, leaving placeholders forever. Restored the Tauri fallback wave: custom artwork first, then v2/artist/get, fed through the stable LabelArtist artwork targets. i18n: zero new msgids (all reused across the 8 locales). slintcheck green. km
This commit is contained in:
13 files changed
+558
-42
No files matched your search
@@ -3760,6 +3760,14 @@ export global LabelState {
|
||||
in property <bool> description-truncated: false;
|
||||
// Header follow state — true when the label is in the user's favorites.
|
||||
in property <bool> is-following: false;
|
||||
// Catalog/library toggle (SegmentedTabBar, mirrors ArtistState.artist-tab
|
||||
// + library-*): "catalog" renders the /label/page sections; "library"
|
||||
// renders the user's favorite albums on this label (the session
|
||||
// library_by_label index). The toggle only shows when count > 0.
|
||||
in-out property <string> label-tab: "catalog";
|
||||
in property <int> library-count: 0;
|
||||
in property <[AlbumCardItem]> library-albums: [];
|
||||
in property <[TrackItem]> library-tracks: [];
|
||||
// Popular tracks (album-thumbnail rows, multi-select capable).
|
||||
in property <[TrackItem]> top-tracks: [];
|
||||
// Multi-select (mirrors AlbumState): mode flag + count. Per-row toggle
|
||||
|
||||
Reference in new issue
Block a user