mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
decouple genre/artist album and song list page sorts
This commit is contained in:
@@ -2,6 +2,7 @@ import { useCallback, useMemo } from 'react';
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
import { ALBUM_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
import { ALBUM_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
||||||
|
import { useListContext } from '/@/renderer/context/list-context';
|
||||||
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
|
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
|
||||||
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
||||||
import { ListDisplayTypeToggleButton } from '/@/renderer/features/shared/components/list-display-type-toggle-button';
|
import { ListDisplayTypeToggleButton } from '/@/renderer/features/shared/components/list-display-type-toggle-button';
|
||||||
@@ -26,6 +27,8 @@ export const AlbumListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarge
|
|||||||
const albumFilters = useAlbumListFilters();
|
const albumFilters = useAlbumListFilters();
|
||||||
const songFilters = useSongListFilters();
|
const songFilters = useSongListFilters();
|
||||||
|
|
||||||
|
const { pageKey } = useListContext();
|
||||||
|
|
||||||
const choice = useMemo(() => {
|
const choice = useMemo(() => {
|
||||||
return target === GenreTarget.ALBUM
|
return target === GenreTarget.ALBUM
|
||||||
? t('entity.album_other', { postProcess: 'titleCase' })
|
? t('entity.album_other', { postProcess: 'titleCase' })
|
||||||
@@ -59,15 +62,15 @@ export const AlbumListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarge
|
|||||||
<ListSortByDropdown
|
<ListSortByDropdown
|
||||||
defaultSortByValue={AlbumListSort.NAME}
|
defaultSortByValue={AlbumListSort.NAME}
|
||||||
itemType={LibraryItem.ALBUM}
|
itemType={LibraryItem.ALBUM}
|
||||||
listKey={ItemListKey.ALBUM}
|
listKey={pageKey as ItemListKey}
|
||||||
/>
|
/>
|
||||||
<Divider orientation="vertical" />
|
<Divider orientation="vertical" />
|
||||||
<ListSortOrderToggleButton
|
<ListSortOrderToggleButton
|
||||||
defaultSortOrder={SortOrder.ASC}
|
defaultSortOrder={SortOrder.ASC}
|
||||||
listKey={ItemListKey.ALBUM}
|
listKey={pageKey as ItemListKey}
|
||||||
/>
|
/>
|
||||||
<ListFiltersModal itemType={LibraryItem.ALBUM} />
|
<ListFiltersModal itemType={LibraryItem.ALBUM} />
|
||||||
<ListRefreshButton listKey={ItemListKey.ALBUM} />
|
<ListRefreshButton listKey={pageKey as ItemListKey} />
|
||||||
</Group>
|
</Group>
|
||||||
<Group gap="sm" wrap="nowrap">
|
<Group gap="sm" wrap="nowrap">
|
||||||
<ListDisplayTypeToggleButton listKey={ItemListKey.ALBUM} />
|
<ListDisplayTypeToggleButton listKey={ItemListKey.ALBUM} />
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { useCallback, useMemo } from 'react';
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
||||||
|
import { useListContext } from '/@/renderer/context/list-context';
|
||||||
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
|
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
|
||||||
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
||||||
import { ListDisplayTypeToggleButton } from '/@/renderer/features/shared/components/list-display-type-toggle-button';
|
import { ListDisplayTypeToggleButton } from '/@/renderer/features/shared/components/list-display-type-toggle-button';
|
||||||
@@ -26,6 +27,8 @@ export const SongListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarget
|
|||||||
const albumFilters = useAlbumListFilters();
|
const albumFilters = useAlbumListFilters();
|
||||||
const songFilters = useSongListFilters();
|
const songFilters = useSongListFilters();
|
||||||
|
|
||||||
|
const { pageKey } = useListContext();
|
||||||
|
|
||||||
const handleToggleGenreTarget = useCallback(() => {
|
const handleToggleGenreTarget = useCallback(() => {
|
||||||
// Clear all filter query states
|
// Clear all filter query states
|
||||||
albumFilters.clear();
|
albumFilters.clear();
|
||||||
@@ -59,15 +62,15 @@ export const SongListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarget
|
|||||||
<ListSortByDropdown
|
<ListSortByDropdown
|
||||||
defaultSortByValue={SongListSort.NAME}
|
defaultSortByValue={SongListSort.NAME}
|
||||||
itemType={LibraryItem.SONG}
|
itemType={LibraryItem.SONG}
|
||||||
listKey={ItemListKey.SONG}
|
listKey={pageKey as ItemListKey}
|
||||||
/>
|
/>
|
||||||
<Divider orientation="vertical" />
|
<Divider orientation="vertical" />
|
||||||
<ListSortOrderToggleButton
|
<ListSortOrderToggleButton
|
||||||
defaultSortOrder={SortOrder.ASC}
|
defaultSortOrder={SortOrder.ASC}
|
||||||
listKey={ItemListKey.SONG}
|
listKey={pageKey as ItemListKey}
|
||||||
/>
|
/>
|
||||||
<ListFiltersModal itemType={LibraryItem.SONG} />
|
<ListFiltersModal itemType={LibraryItem.SONG} />
|
||||||
<ListRefreshButton listKey={ItemListKey.SONG} />
|
<ListRefreshButton listKey={pageKey as ItemListKey} />
|
||||||
</Group>
|
</Group>
|
||||||
<Group gap="sm" wrap="nowrap">
|
<Group gap="sm" wrap="nowrap">
|
||||||
<ListDisplayTypeToggleButton listKey={ItemListKey.SONG} />
|
<ListDisplayTypeToggleButton listKey={ItemListKey.SONG} />
|
||||||
|
|||||||
Reference in New Issue
Block a user