diff --git a/src/renderer/features/albums/components/jellyfin-album-filters.tsx b/src/renderer/features/albums/components/jellyfin-album-filters.tsx
index e26f69b63..d77e22d18 100644
--- a/src/renderer/features/albums/components/jellyfin-album-filters.tsx
+++ b/src/renderer/features/albums/components/jellyfin-album-filters.tsx
@@ -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 && (
<>
{
+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 && (
<>
{
+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 && (
<>
{
export const ListFiltersModal = ({ isActive, itemType }: ListFiltersProps) => {
const { t } = useTranslation();
const server = useCurrentServer();
- const { isSidebarOpen, setIsSidebarOpen } = useListContext();
+ const { isSidebarOpen, pageKey, setIsSidebarOpen } = useListContext();
const serverType = server.type;
@@ -53,6 +53,9 @@ export const ListFiltersModal = ({ isActive, itemType }: ListFiltersProps) => {
const canPin = Boolean(setIsSidebarOpen);
+ const disableArtistFilter = pageKey === ItemListKey.ALBUM_ARTIST_ALBUM;
+ const disableGenreFilter = pageKey === ItemListKey.GENRE_ALBUM;
+
return (
<>
@@ -81,7 +84,10 @@ export const ListFiltersModal = ({ isActive, itemType }: ListFiltersProps) => {
}
>
-
+
>
);
@@ -91,11 +97,18 @@ export const ListFilters = ({ itemType }: ListFiltersProps) => {
const server = useCurrentServer();
const serverType = server.type;
const FilterComponent = FILTERS[serverType][itemType];
+ const { pageKey } = useListContext();
+
+ const disableArtistFilter = pageKey === ItemListKey.ALBUM_ARTIST_ALBUM;
+ const disableGenreFilter = pageKey === ItemListKey.GENRE_ALBUM;
return (
}>
-
+
);
diff --git a/src/renderer/features/songs/components/jellyfin-song-filters.tsx b/src/renderer/features/songs/components/jellyfin-song-filters.tsx
index 79917f210..9569461b8 100644
--- a/src/renderer/features/songs/components/jellyfin-song-filters.tsx
+++ b/src/renderer/features/songs/components/jellyfin-song-filters.tsx
@@ -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 { artistsQueries } from '/@/renderer/features/artists/api/artists-api';
import { useGenreList } from '/@/renderer/features/genres/api/genres-api';
import {
@@ -27,19 +26,19 @@ import { AlbumArtistListSort, LibraryItem, SortOrder } from '/@/shared/types/dom
interface JellyfinSongFiltersProps {
disableArtistFilter?: boolean;
+ disableGenreFilter?: boolean;
}
-export const JellyfinSongFilters = ({ disableArtistFilter }: JellyfinSongFiltersProps) => {
+export const JellyfinSongFilters = ({
+ disableArtistFilter,
+ disableGenreFilter,
+}: JellyfinSongFiltersProps) => {
const server = useCurrentServer();
const serverId = server.id;
const { t } = useTranslation();
const { query, setArtistIds, setCustom, setFavorite, setMaxYear, setMinYear } =
useSongListFilters();
- const { customFilters } = useListContext();
-
- const isGenrePage = customFilters?.genreIds !== undefined;
-
// Despite the fact that getTags returns genres, it only returns genre names.
// We prefer using IDs, hence the double query
const genreListQuery = useGenreList();
@@ -280,7 +279,7 @@ export const JellyfinSongFilters = ({ disableArtistFilter }: JellyfinSongFilters
/>
>
)}
- {!isGenrePage && (
+ {!disableGenreFilter && (
<>
{
+interface NavidromeSongFiltersProps {
+ disableArtistFilter?: boolean;
+ disableGenreFilter?: boolean;
+}
+
+export const NavidromeSongFilters = ({
+ disableArtistFilter,
+ disableGenreFilter,
+}: NavidromeSongFiltersProps) => {
const { t } = useTranslation();
const server = useCurrentServer();
const serverId = server.id;
const { query, setArtistIds, setCustom, setFavorite, setGenreId, setMaxYear, setMinYear } =
useSongListFilters();
- const { customFilters } = useListContext();
-
- const isGenrePage = customFilters?.genreIds !== undefined;
-
const genreListQuery = useGenreList();
const genreList = useMemo(() => {
@@ -257,18 +260,22 @@ export const NavidromeSongFilters = () => {
w="100%"
/>
-
-
- {!isGenrePage && (
+ {!disableArtistFilter && (
+ <>
+
+
+ >
+ )}
+ {!disableGenreFilter && (
{
+interface SubsonicSongFiltersProps {
+ disableArtistFilter?: boolean;
+ disableGenreFilter?: boolean;
+}
+
+export const SubsonicSongFilters = ({
+ disableArtistFilter,
+ disableGenreFilter,
+}: SubsonicSongFiltersProps) => {
const { t } = useTranslation();
const serverId = useCurrentServerId();
const { query, setArtistIds, setFavorite, setGenreId } = useSongListFilters();
- const { customFilters } = useListContext();
-
- const isGenrePage = customFilters?.genreIds !== undefined;
-
const genreListQuery = useGenreList();
const genreList = useMemo(() => {
@@ -149,19 +152,23 @@ export const SubsonicSongFilters = () => {
/>
))}
-
-
- {!isGenrePage && (
+ {!disableArtistFilter && (
+ <>
+
+
+ >
+ )}
+ {!disableGenreFilter && (
<>