feat(13-02): add library filter dropdown and wire all views to respect active filter
- Add selectedLibraryId state + ByLibrary conditional calls to library-store - Add library filter pass-through methods to library-controller - Create library-filter dropdown component in top bar - Wire genre-details, cover-grid, artists-view, genres-view to use ByLibrary queries - Update album-selection helper to respect library filter - Regenerate Wails bindings for new ByLibrary methods - Search remains client-side (automatically filtered by loaded data) - Playlists remain unfiltered (use separate playlist store)
This commit is contained in:
+16
@@ -16,24 +16,38 @@ export function FullRescan():Promise<library.ScanMetrics>;
|
||||
|
||||
export function GetAlbumTracks(arg1:number):Promise<Array<library.Track>>;
|
||||
|
||||
export function GetAlbumTracksByLibrary(arg1:number,arg2:number):Promise<Array<library.Track>>;
|
||||
|
||||
export function GetAlbumsByArtist(arg1:number):Promise<Array<library.Album>>;
|
||||
|
||||
export function GetAlbumsByArtistByLibrary(arg1:number,arg2:number):Promise<Array<library.Album>>;
|
||||
|
||||
export function GetAllAlbums():Promise<Array<library.Album>>;
|
||||
|
||||
export function GetAllAlbumsByLibrary(arg1:number):Promise<Array<library.Album>>;
|
||||
|
||||
export function GetAllArtists():Promise<Array<library.Artist>>;
|
||||
|
||||
export function GetAllArtistsByLibrary(arg1:number):Promise<Array<library.Artist>>;
|
||||
|
||||
export function GetAllGenresWithCounts():Promise<Array<library.GenreWithCount>>;
|
||||
|
||||
export function GetAllGenresWithCountsByLibrary(arg1:number):Promise<Array<library.GenreWithCount>>;
|
||||
|
||||
export function GetAllLibrariesWithTrackCounts():Promise<Array<library.Info>>;
|
||||
|
||||
export function GetAllTracks():Promise<Array<library.Track>>;
|
||||
|
||||
export function GetAllTracksByLibrary(arg1:number):Promise<Array<library.Track>>;
|
||||
|
||||
export function GetRemovalImpact(arg1:number):Promise<library.RemovalImpact>;
|
||||
|
||||
export function GetScanQueueLength():Promise<number>;
|
||||
|
||||
export function GetTracksByGenre(arg1:string):Promise<Array<library.Track>>;
|
||||
|
||||
export function GetTracksByGenreByLibrary(arg1:string,arg2:number):Promise<Array<library.Track>>;
|
||||
|
||||
export function IsScanActive():Promise<boolean>;
|
||||
|
||||
export function IsScanPaused():Promise<boolean>;
|
||||
@@ -54,6 +68,8 @@ export function ScanLibrary(arg1:number):Promise<void>;
|
||||
|
||||
export function SearchTracks(arg1:string):Promise<Array<library.Track>>;
|
||||
|
||||
export function SearchTracksByLibrary(arg1:string,arg2:number):Promise<Array<library.Track>>;
|
||||
|
||||
export function SetContext(arg1:context.Context):Promise<void>;
|
||||
|
||||
export function SetRemovalHooks(arg1:library.RemovalHooks):Promise<void>;
|
||||
|
||||
@@ -26,22 +26,42 @@ export function GetAlbumTracks(arg1) {
|
||||
return window['go']['library']['Library']['GetAlbumTracks'](arg1);
|
||||
}
|
||||
|
||||
export function GetAlbumTracksByLibrary(arg1, arg2) {
|
||||
return window['go']['library']['Library']['GetAlbumTracksByLibrary'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function GetAlbumsByArtist(arg1) {
|
||||
return window['go']['library']['Library']['GetAlbumsByArtist'](arg1);
|
||||
}
|
||||
|
||||
export function GetAlbumsByArtistByLibrary(arg1, arg2) {
|
||||
return window['go']['library']['Library']['GetAlbumsByArtistByLibrary'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function GetAllAlbums() {
|
||||
return window['go']['library']['Library']['GetAllAlbums']();
|
||||
}
|
||||
|
||||
export function GetAllAlbumsByLibrary(arg1) {
|
||||
return window['go']['library']['Library']['GetAllAlbumsByLibrary'](arg1);
|
||||
}
|
||||
|
||||
export function GetAllArtists() {
|
||||
return window['go']['library']['Library']['GetAllArtists']();
|
||||
}
|
||||
|
||||
export function GetAllArtistsByLibrary(arg1) {
|
||||
return window['go']['library']['Library']['GetAllArtistsByLibrary'](arg1);
|
||||
}
|
||||
|
||||
export function GetAllGenresWithCounts() {
|
||||
return window['go']['library']['Library']['GetAllGenresWithCounts']();
|
||||
}
|
||||
|
||||
export function GetAllGenresWithCountsByLibrary(arg1) {
|
||||
return window['go']['library']['Library']['GetAllGenresWithCountsByLibrary'](arg1);
|
||||
}
|
||||
|
||||
export function GetAllLibrariesWithTrackCounts() {
|
||||
return window['go']['library']['Library']['GetAllLibrariesWithTrackCounts']();
|
||||
}
|
||||
@@ -50,6 +70,10 @@ export function GetAllTracks() {
|
||||
return window['go']['library']['Library']['GetAllTracks']();
|
||||
}
|
||||
|
||||
export function GetAllTracksByLibrary(arg1) {
|
||||
return window['go']['library']['Library']['GetAllTracksByLibrary'](arg1);
|
||||
}
|
||||
|
||||
export function GetRemovalImpact(arg1) {
|
||||
return window['go']['library']['Library']['GetRemovalImpact'](arg1);
|
||||
}
|
||||
@@ -62,6 +86,10 @@ export function GetTracksByGenre(arg1) {
|
||||
return window['go']['library']['Library']['GetTracksByGenre'](arg1);
|
||||
}
|
||||
|
||||
export function GetTracksByGenreByLibrary(arg1, arg2) {
|
||||
return window['go']['library']['Library']['GetTracksByGenreByLibrary'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function IsScanActive() {
|
||||
return window['go']['library']['Library']['IsScanActive']();
|
||||
}
|
||||
@@ -102,6 +130,10 @@ export function SearchTracks(arg1) {
|
||||
return window['go']['library']['Library']['SearchTracks'](arg1);
|
||||
}
|
||||
|
||||
export function SearchTracksByLibrary(arg1, arg2) {
|
||||
return window['go']['library']['Library']['SearchTracksByLibrary'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function SetContext(arg1) {
|
||||
return window['go']['library']['Library']['SetContext'](arg1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user