properly handle disableArtistFilter and disableGenreFilter props for all list filters

This commit is contained in:
jeffvli
2026-01-18 14:07:52 -08:00
parent dad3d10a83
commit c3d4f6cacd
7 changed files with 91 additions and 67 deletions
@@ -3,7 +3,6 @@ import { useCallback, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { getItemImageUrl } from '/@/renderer/components/item-image/item-image';
import { useListContext } from '/@/renderer/context/list-context';
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
import { artistsQueries } from '/@/renderer/features/artists/api/artists-api';
import { genresQueries } from '/@/renderer/features/genres/api/genres-api';
@@ -32,16 +31,16 @@ import {
interface JellyfinAlbumFiltersProps {
disableArtistFilter?: boolean;
disableGenreFilter?: boolean;
}
export const JellyfinAlbumFilters = ({ disableArtistFilter }: JellyfinAlbumFiltersProps) => {
export const JellyfinAlbumFilters = ({
disableArtistFilter,
disableGenreFilter,
}: JellyfinAlbumFiltersProps) => {
const { t } = useTranslation();
const serverId = useCurrentServerId();
const { customFilters } = useListContext();
const isGenrePage = customFilters?.genreIds !== undefined;
const {
query,
setAlbumArtist,
@@ -298,7 +297,7 @@ export const JellyfinAlbumFilters = ({ disableArtistFilter }: JellyfinAlbumFilte
/>
</>
)}
{!isGenrePage && (
{!disableGenreFilter && (
<>
<Divider my="md" />
<VirtualMultiSelect
@@ -3,7 +3,6 @@ import { ChangeEvent, useCallback, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { getItemImageUrl } from '/@/renderer/components/item-image/item-image';
import { useListContext } from '/@/renderer/context/list-context';
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
import { artistsQueries } from '/@/renderer/features/artists/api/artists-api';
import { useGenreList } from '/@/renderer/features/genres/api/genres-api';
@@ -27,20 +26,21 @@ import { AlbumArtistListSort, LibraryItem, SortOrder } from '/@/shared/types/dom
interface NavidromeAlbumFiltersProps {
disableArtistFilter?: boolean;
disableGenreFilter?: boolean;
}
export const NavidromeAlbumFilters = ({ disableArtistFilter }: NavidromeAlbumFiltersProps) => {
export const NavidromeAlbumFilters = ({
disableArtistFilter,
disableGenreFilter,
}: NavidromeAlbumFiltersProps) => {
const { t } = useTranslation();
const server = useCurrentServer();
const serverId = server.id;
const { customFilters } = useListContext();
const artistSelectMode = useAppStore((state) => state.artistSelectMode);
const genreSelectMode = useAppStore((state) => state.genreSelectMode);
const { setArtistSelectMode, setGenreSelectMode } = useAppStoreActions();
const isGenrePage = customFilters?.genreIds !== undefined;
const {
query,
setAlbumArtist,
@@ -327,7 +327,7 @@ export const NavidromeAlbumFilters = ({ disableArtistFilter }: NavidromeAlbumFil
/>
</>
)}
{!isGenrePage && (
{!disableGenreFilter && (
<>
<Divider my="md" />
<VirtualMultiSelect
@@ -3,7 +3,6 @@ import { ChangeEvent, useCallback, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { getItemImageUrl } from '/@/renderer/components/item-image/item-image';
import { useListContext } from '/@/renderer/context/list-context';
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
import { artistsQueries } from '/@/renderer/features/artists/api/artists-api';
import { useGenreList } from '/@/renderer/features/genres/api/genres-api';
@@ -26,17 +25,17 @@ import { AlbumArtistListSort, LibraryItem, SortOrder } from '/@/shared/types/dom
interface SubsonicAlbumFiltersProps {
disableArtistFilter?: boolean;
disableGenreFilter?: boolean;
}
export const SubsonicAlbumFilters = ({ disableArtistFilter }: SubsonicAlbumFiltersProps) => {
export const SubsonicAlbumFilters = ({
disableArtistFilter,
disableGenreFilter,
}: SubsonicAlbumFiltersProps) => {
const { t } = useTranslation();
const serverId = useCurrentServerId();
const { customFilters } = useListContext();
const isGenrePage = customFilters?.genreIds !== undefined;
const { query, setAlbumArtist, setFavorite, setGenreId, setMaxYear, setMinYear } =
useAlbumListFilters();
@@ -262,7 +261,7 @@ export const SubsonicAlbumFilters = ({ disableArtistFilter }: SubsonicAlbumFilte
/>
</>
)}
{!isGenrePage && (
{!disableGenreFilter && (
<>
<Divider my="md" />
<VirtualMultiSelect