fix(albums): scope All Albums genre filter to selected music library (#959)

* fix(albums): scope All Albums genre filter to selected music library

When the sidebar narrows to one Subsonic library, the genre popover fell back
to server-wide getGenres() instead of the scoped local index catalog. Load
genre options from libraryGetGenreAlbumCounts for library-only scope and
enable the catalog path whenever the index is on and a library is selected.

* docs: credit All Albums genre filter fix (PR #959, report zunoz)

* chore: drop settingsCredits entry for small genre-filter fix
This commit is contained in:
cucadmuh
2026-06-03 22:05:35 +03:00
committed by GitHub
parent 75e2c7f9c6
commit a142bb1dab
5 changed files with 115 additions and 6 deletions
+7 -2
View File
@@ -26,6 +26,7 @@ import {
type AlbumBrowseQuery,
type GenreFilterOption,
} from '../utils/library/albumBrowseLoad';
import { libraryScopeForServer } from '../api/subsonicClient';
import {
ALBUM_YEAR_FILTER_DEBOUNCE_MS,
resolveAlbumYearBounds,
@@ -167,7 +168,10 @@ export function useAlbumBrowseData({
const genreFiltered = albumBrowseHasGenreFilter(browseQuery);
const serverFilterActive = albumBrowseHasServerFilters(browseQuery);
const libraryScopeActive = libraryScopeForServer(serverId) != null;
const narrowGenreList = yearFilterActive || losslessOnly || starredOnly || compFilterActive;
/** When true, GenreFilterBar uses `genreCatalogOptions` instead of server `getGenres()`. */
const genreCatalogActive = narrowGenreList || (indexEnabled && libraryScopeActive);
const compScanExhausted = useMemo(
() => compFilterClientOnly && !genreFiltered
@@ -352,7 +356,7 @@ export function useAlbumBrowseData({
}, [browseQuery, indexEnabled, serverId, loadBrowse, musicLibraryFilterVersion]);
useEffect(() => {
if (!narrowGenreList) {
if (!genreCatalogActive) {
setGenreCatalogOptions(null);
return;
}
@@ -364,7 +368,7 @@ export function useAlbumBrowseData({
cancelled = true;
};
}, [
narrowGenreList,
genreCatalogActive,
serverId,
indexEnabled,
browseQueryWithoutGenre,
@@ -466,6 +470,7 @@ export function useAlbumBrowseData({
genreFiltered,
serverFilterActive,
narrowGenreList,
genreCatalogActive,
genreCatalogOptions,
yearFilterActive,
debouncedYearFields,