add global music folder selector

This commit is contained in:
jeffvli
2025-11-17 01:46:04 -08:00
parent 199a67fdf3
commit a92a829ca7
28 changed files with 782 additions and 351 deletions
@@ -1,6 +1,5 @@
import { ALBUM_ARTIST_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
import { ListMusicFolderDropdown } from '/@/renderer/features/shared/components/list-music-folder-dropdown';
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';
@@ -27,7 +26,6 @@ export const AlbumArtistListHeaderFilters = () => {
defaultSortOrder={SortOrder.ASC}
listKey={ItemListKey.ALBUM_ARTIST}
/>
<ListMusicFolderDropdown listKey={ItemListKey.ALBUM_ARTIST} />
<ListRefreshButton listKey={ItemListKey.ALBUM_ARTIST} />
</Group>
<Group gap="sm" wrap="nowrap">
@@ -3,7 +3,6 @@ import { useQuery } from '@tanstack/react-query';
import { ALBUM_ARTIST_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
import { sharedQueries } from '/@/renderer/features/shared/api/shared-api';
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
import { ListMusicFolderDropdown } from '/@/renderer/features/shared/components/list-music-folder-dropdown';
import { ListRefreshButton } from '/@/renderer/features/shared/components/list-refresh-button';
import { ListSelectFilter } from '/@/renderer/features/shared/components/list-select-filter';
import { ListSortByDropdown } from '/@/renderer/features/shared/components/list-sort-by-dropdown';
@@ -36,7 +35,6 @@ export const ArtistListHeaderFilters = () => {
defaultSortOrder={SortOrder.ASC}
listKey={ItemListKey.ARTIST}
/>
<ListMusicFolderDropdown listKey={ItemListKey.ARTIST} />
{rolesQuery.data && rolesQuery.data.length > 0 && (
<>
<Divider orientation="vertical" />
@@ -1,4 +1,3 @@
import { useMusicFolderIdFilter } from '/@/renderer/features/shared/hooks/use-music-folder-id-filter';
import { useSearchTermFilter } from '/@/renderer/features/shared/hooks/use-search-term-filter';
import { useSortByFilter } from '/@/renderer/features/shared/hooks/use-sort-by-filter';
import { useSortOrderFilter } from '/@/renderer/features/shared/hooks/use-sort-order-filter';
@@ -11,12 +10,9 @@ export const useAlbumArtistListFilters = () => {
const { sortOrder } = useSortOrderFilter(null, ItemListKey.ALBUM_ARTIST);
const { musicFolderId } = useMusicFolderIdFilter(null, ItemListKey.ALBUM_ARTIST);
const { searchTerm, setSearchTerm } = useSearchTermFilter('');
const query = {
[FILTER_KEYS.SHARED.MUSIC_FOLDER_ID]: musicFolderId ?? undefined,
[FILTER_KEYS.SHARED.SEARCH_TERM]: searchTerm ?? undefined,
[FILTER_KEYS.SHARED.SORT_BY]: sortBy ?? undefined,
[FILTER_KEYS.SHARED.SORT_ORDER]: sortOrder ?? undefined,
@@ -1,4 +1,3 @@
import { useMusicFolderIdFilter } from '/@/renderer/features/shared/hooks/use-music-folder-id-filter';
import { useSearchTermFilter } from '/@/renderer/features/shared/hooks/use-search-term-filter';
import { useSelectFilter } from '/@/renderer/features/shared/hooks/use-select-filter';
import { useSortByFilter } from '/@/renderer/features/shared/hooks/use-sort-by-filter';
@@ -12,15 +11,12 @@ export const useArtistListFilters = () => {
const { sortOrder } = useSortOrderFilter(null, ItemListKey.ARTIST);
const { musicFolderId } = useMusicFolderIdFilter(null, ItemListKey.ARTIST);
const { searchTerm, setSearchTerm } = useSearchTermFilter('');
const { value: role } = useSelectFilter(FILTER_KEYS.ARTIST.ROLE, '', ItemListKey.ARTIST);
const query = {
[FILTER_KEYS.ARTIST.ROLE]: role ?? undefined,
[FILTER_KEYS.SHARED.MUSIC_FOLDER_ID]: musicFolderId ?? undefined,
[FILTER_KEYS.SHARED.SEARCH_TERM]: searchTerm ?? undefined,
[FILTER_KEYS.SHARED.SORT_BY]: sortBy ?? undefined,
[FILTER_KEYS.SHARED.SORT_ORDER]: sortOrder ?? undefined,