feat(labels): follow / unfollow labels (mirrors Follow Artist)
Adds the same follow flow we already have for artists, applied to labels. Confirmed against the inferred OpenAPI spec (qbz-nix-docs/qobuz-api-inferred-openapi-v9.7.0.3.yaml) — the existing /favorite/create, /favorite/delete and /favorite/getUserFavorites endpoints already accept fav_type='label' and label_ids, so no new Qobuz endpoints were needed. Backend - favorites_cache: new favorite_labels SQLite table + add / remove / sync / get methods alongside the artist counterparts. clear_all drops the new table on logout. - commands_v2::favorites: 4 new commands — v2_get_cached_favorite_labels, v2_sync_cached_favorite_labels, v2_cache_favorite_label, v2_uncache_favorite_label. Same wiring as the artist commands. - lib.rs invoke_handler registers the four new commands. Frontend - src/lib/stores/labelFavoritesStore.ts: clone of artistFavoritesStore — same in-memory Set, same isLoaded flag, toggle calls /favorite/create with fav_type=label, sync paginates /favorite/getUserFavorites?type=labels. - routes/+page.svelte: loadLabelFavorites() called alongside the other three after login is confirmed. - LabelView.svelte: heart-shape Follow button in the label header info column, mirroring ArtistDetailView's .artist-actions treatment. Reactive to the store via labelFavoritesVersion bump so any future Favorites view that toggles a label will keep this view in sync. - i18n: label.follow / label.unfollow in all five locales. cc
This commit is contained in:
11 files changed
+457
-5
No files matched your search
@@ -138,7 +138,9 @@
|
||||
"readLess": "WENIGER",
|
||||
"seeAll": "Alle anzeigen",
|
||||
"showMore": "Mehr anzeigen",
|
||||
"showLess": "Weniger anzeigen"
|
||||
"showLess": "Weniger anzeigen",
|
||||
"follow": "Label folgen",
|
||||
"unfollow": "Nicht mehr folgen"
|
||||
},
|
||||
"labelReleases": {
|
||||
"albumCount": "{count} Alben",
|
||||
|
||||
Reference in new issue
Block a user