mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-17 14:10:14 +02:00
properly handle switch between genre display states without filter clobber
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
||||
import { useAlbumListFilters } from '/@/renderer/features/albums/hooks/use-album-list-filters';
|
||||
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
||||
import { ListFilters } from '/@/renderer/features/shared/components/list-filters';
|
||||
import { ListRefreshButton } from '/@/renderer/features/shared/components/list-refresh-button';
|
||||
import { ListSortByDropdown } from '/@/renderer/features/shared/components/list-sort-by-dropdown';
|
||||
import { ListSortOrderToggleButton } from '/@/renderer/features/shared/components/list-sort-order-toggle-button';
|
||||
import { useSongListFilters } from '/@/renderer/features/songs/hooks/use-song-list-filters';
|
||||
import { GenreTarget, useGenreTarget, useSettingsStoreActions } from '/@/renderer/store';
|
||||
import { Button } from '/@/shared/components/button/button';
|
||||
import { Divider } from '/@/shared/components/divider/divider';
|
||||
@@ -20,10 +22,17 @@ export const SongListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarget
|
||||
const { t } = useTranslation();
|
||||
const target = useGenreTarget();
|
||||
const { setGenreBehavior } = useSettingsStoreActions();
|
||||
const albumFilters = useAlbumListFilters();
|
||||
const songFilters = useSongListFilters();
|
||||
|
||||
const handleToggleGenreTarget = () => {
|
||||
const handleToggleGenreTarget = useCallback(() => {
|
||||
// Clear all filter query states
|
||||
albumFilters.clear();
|
||||
songFilters.clear();
|
||||
|
||||
// Toggle the genre target
|
||||
setGenreBehavior(target === GenreTarget.ALBUM ? GenreTarget.TRACK : GenreTarget.ALBUM);
|
||||
};
|
||||
}, [target, setGenreBehavior, albumFilters, songFilters]);
|
||||
|
||||
const choice = useMemo(() => {
|
||||
return target === GenreTarget.ALBUM
|
||||
|
||||
Reference in New Issue
Block a user