feat(home): Recently Played Albums gets a View-all full page
The rail's 'View all' opens a dedicated page listing the recently played albums (the dedicated album history from the #567 fix, cap 24). Built on the AwardAlbumsView skeleton stripped to essentials: fixed header + windowed AlbumCollectionView wired per the new sampler contract, scroll-restore, shared scrollbar. Works offline (local history — the AppShell arm deliberately skips the offline gate) with mixed-source rows routing through the existing open-album funnel (qobuz/plex/local) and source-split artwork dispatch mirroring the rail's. Full nav integration: NavEntry::RecentAlbums round-trips through last_nav so view persistence restores it (a local JSON read — cannot crash-loop), ADR-004 back button via the standard record + navigate + flags shape. Zero new msgids — title, empty state and the View-all link all reuse existing strings across the 8 locales. cc
This commit is contained in:
9 files changed
+353
-33
No files matched your search
@@ -201,6 +201,18 @@ export global HomeActions {
|
||||
callback toggle-playlist-tag(string);
|
||||
// Clear all selected category tags (back to showing every playlist).
|
||||
callback clear-playlist-tags();
|
||||
// "View all" on the Recently Played Albums rail -> the full-page listing
|
||||
// (RecentAlbumsView), fed from the local play-history store.
|
||||
callback open-recent-albums();
|
||||
}
|
||||
|
||||
// RecentAlbumsView — the full "Recently Played Albums" page opened from the
|
||||
// Home rail's "View all". Fed from the LOCAL play-history store (capped at
|
||||
// 24, see crate::recently), so it needs no paging/search state; the loader
|
||||
// repopulates `albums` on every navigation.
|
||||
export global RecentAlbumsState {
|
||||
in property <[AlbumCardItem]> albums: [];
|
||||
in property <bool> loading: false;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -967,7 +979,7 @@ export global DragActions {
|
||||
}
|
||||
|
||||
// Which content view the shell shows.
|
||||
export enum ContentView { home, album, artist, artist-releases, settings, search, musician, label, label-releases, award, award-albums, location, favorites, mix, playlist, discover-browse, playlist-manager, offline-manager, blacklist-manager, local-library, local-album, mixtapes, collections, mixtape-detail, discography-builder, purchases, purchase-album }
|
||||
export enum ContentView { home, album, artist, artist-releases, settings, search, musician, label, label-releases, award, award-albums, location, favorites, mix, playlist, discover-browse, recent-albums, playlist-manager, offline-manager, blacklist-manager, local-library, local-album, mixtapes, collections, mixtape-detail, discography-builder, purchases, purchase-album }
|
||||
|
||||
// In-app toast (transient notification). Mirrors Tauri's toastStore:
|
||||
// a single toast at a time (a new one replaces the current), auto-hidden
|
||||
|
||||
Reference in new issue
Block a user