diff --git a/src/renderer/features/albums/components/navidrome-album-filters.tsx b/src/renderer/features/albums/components/navidrome-album-filters.tsx index a07d3cebc..9fc063100 100644 --- a/src/renderer/features/albums/components/navidrome-album-filters.tsx +++ b/src/renderer/features/albums/components/navidrome-album-filters.tsx @@ -13,6 +13,7 @@ import { useGenreList } from '/@/renderer/features/genres/api/genres-api'; import { sharedQueries } from '/@/renderer/features/shared/api/shared-api'; import { useCurrentServer, useCurrentServerId } from '/@/renderer/store'; import { titleCase } from '/@/renderer/utils'; +import { NDSongQueryFieldsLabelMap } from '/@/shared/api/navidrome/navidrome-types'; import { Divider } from '/@/shared/components/divider/divider'; import { Group } from '/@/shared/components/group/group'; import { NumberInput } from '/@/shared/components/number-input/number-input'; @@ -269,7 +270,7 @@ const TagFilters = () => { for (const tag of tagsQuery.data?.enumTags || []) { if (!tagsQuery.data?.excluded.album.includes(tag.name)) { results.push({ - label: titleCase(tag.name), + label: NDSongQueryFieldsLabelMap[tag.name] ?? titleCase(tag.name), options: tag.options, value: tag.name, }); diff --git a/src/renderer/features/songs/components/navidrome-song-filters.tsx b/src/renderer/features/songs/components/navidrome-song-filters.tsx index bf97553cf..90b945b9c 100644 --- a/src/renderer/features/songs/components/navidrome-song-filters.tsx +++ b/src/renderer/features/songs/components/navidrome-song-filters.tsx @@ -12,6 +12,7 @@ import { sharedQueries } from '/@/renderer/features/shared/api/shared-api'; import { useSongListFilters } from '/@/renderer/features/songs/hooks/use-song-list-filters'; import { useCurrentServerId } from '/@/renderer/store'; import { titleCase } from '/@/renderer/utils'; +import { NDSongQueryFieldsLabelMap } from '/@/shared/api/navidrome/navidrome-types'; import { Divider } from '/@/shared/components/divider/divider'; import { NumberInput } from '/@/shared/components/number-input/number-input'; import { Stack } from '/@/shared/components/stack/stack'; @@ -171,7 +172,7 @@ const TagFilters = () => { for (const tag of tagsQuery.data?.enumTags || []) { if (!tagsQuery.data?.excluded.song.includes(tag.name)) { results.push({ - label: titleCase(tag.name), + label: NDSongQueryFieldsLabelMap[tag.name] ?? titleCase(tag.name), options: tag.options, value: tag.name, }); diff --git a/src/shared/api/navidrome/navidrome-types.ts b/src/shared/api/navidrome/navidrome-types.ts index 6f9611cee..bb4f6ddb2 100644 --- a/src/shared/api/navidrome/navidrome-types.ts +++ b/src/shared/api/navidrome/navidrome-types.ts @@ -180,6 +180,14 @@ export const NDSongQueryFields = [ { label: 'Year', type: 'number', value: 'year' }, ]; +export const NDSongQueryFieldsLabelMap: Record = NDSongQueryFields.reduce( + (acc, field) => { + acc[field.value] = field.label; + return acc; + }, + {} as Record, +); + export const NDSongQueryPlaylistOperators = [ { label: i18n.t('filterOperator.inPlaylist', { postProcess: 'titleCase' }),