mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 02:13:33 +00:00
Fix jellyfin discography views (#81)
This commit is contained in:
parent
977cb89481
commit
a308efaf06
11 changed files with 72 additions and 14 deletions
|
|
@ -4,6 +4,7 @@ import { MultiSelect, NumberInput, Switch, Text } from '/@/renderer/components';
|
|||
import { SongListFilter, useListStoreActions, useSongListFilter } from '/@/renderer/store';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { useGenreList } from '/@/renderer/features/genres';
|
||||
import { LibraryItem } from '/@/renderer/api/types';
|
||||
|
||||
interface JellyfinSongFiltersProps {
|
||||
handleFilterChange: (filters: SongListFilter) => void;
|
||||
|
|
@ -51,6 +52,7 @@ export const JellyfinSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
@ -72,6 +74,7 @@ export const JellyfinSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
@ -90,6 +93,7 @@ export const JellyfinSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
@ -108,6 +112,7 @@ export const JellyfinSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { NumberInput, Select, Switch, Text } from '/@/renderer/components';
|
|||
import { SongListFilter, useListStoreActions, useSongListFilter } from '/@/renderer/store';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { useGenreList } from '/@/renderer/features/genres';
|
||||
import { LibraryItem } from '/@/renderer/api/types';
|
||||
|
||||
interface NavidromeSongFiltersProps {
|
||||
handleFilterChange: (filters: SongListFilter) => void;
|
||||
|
|
@ -41,6 +42,7 @@ export const NavidromeSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
@ -59,6 +61,7 @@ export const NavidromeSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
|
||||
|
|
@ -78,6 +81,7 @@ export const NavidromeSongFilters = ({
|
|||
},
|
||||
},
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import {
|
|||
} from 'react-icons/ri';
|
||||
import { api } from '/@/renderer/api';
|
||||
import { queryKeys } from '/@/renderer/api/query-keys';
|
||||
import { SongListQuery, SongListSort, SortOrder } from '/@/renderer/api/types';
|
||||
import { LibraryItem, SongListQuery, SongListSort, SortOrder } from '/@/renderer/api/types';
|
||||
import { DropdownMenu, Button, Slider, MultiSelect, Switch, Text } from '/@/renderer/components';
|
||||
import { useMusicFolders } from '/@/renderer/features/shared';
|
||||
import { JellyfinSongFilters } from '/@/renderer/features/songs/components/jellyfin-song-filters';
|
||||
|
|
@ -151,6 +151,7 @@ export const SongListHeaderFilters = ({ tableRef }: SongListHeaderFiltersProps)
|
|||
sortBy: e.currentTarget.value as SongListSort,
|
||||
sortOrder: sortOrder || SortOrder.ASC,
|
||||
},
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
|
||||
|
|
@ -167,11 +168,13 @@ export const SongListHeaderFilters = ({ tableRef }: SongListHeaderFiltersProps)
|
|||
if (e.currentTarget.value === String(filter.musicFolderId)) {
|
||||
updatedFilters = setFilter({
|
||||
data: { musicFolderId: undefined },
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
} else {
|
||||
updatedFilters = setFilter({
|
||||
data: { musicFolderId: e.currentTarget.value },
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
}
|
||||
|
|
@ -185,6 +188,7 @@ export const SongListHeaderFilters = ({ tableRef }: SongListHeaderFiltersProps)
|
|||
const newSortOrder = filter.sortOrder === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC;
|
||||
const updatedFilters = setFilter({
|
||||
data: { sortOrder: newSortOrder },
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
handleFilterChange(updatedFilters);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import debounce from 'lodash/debounce';
|
|||
import { ChangeEvent, MutableRefObject, useCallback } from 'react';
|
||||
import { api } from '/@/renderer/api';
|
||||
import { queryKeys } from '/@/renderer/api/query-keys';
|
||||
import { SongListQuery } from '/@/renderer/api/types';
|
||||
import { LibraryItem, SongListQuery } from '/@/renderer/api/types';
|
||||
import { PageHeader, SearchInput } from '/@/renderer/components';
|
||||
import { FilterBar, LibraryHeaderBar } from '/@/renderer/features/shared';
|
||||
import { SongListHeaderFilters } from '/@/renderer/features/songs/components/song-list-header-filters';
|
||||
|
|
@ -78,7 +78,11 @@ export const SongListHeader = ({ title, itemCount, tableRef }: SongListHeaderPro
|
|||
const handleSearch = debounce((e: ChangeEvent<HTMLInputElement>) => {
|
||||
const previousSearchTerm = filter.searchTerm;
|
||||
const searchTerm = e.target.value === '' ? undefined : e.target.value;
|
||||
const updatedFilters = setFilter({ data: { searchTerm }, key: pageKey }) as SongListFilter;
|
||||
const updatedFilters = setFilter({
|
||||
data: { searchTerm },
|
||||
itemType: LibraryItem.SONG,
|
||||
key: pageKey,
|
||||
}) as SongListFilter;
|
||||
if (previousSearchTerm !== searchTerm) handleFilterChange(updatedFilters);
|
||||
}, 500);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue