diff --git a/src/renderer/api/navidrome/navidrome-controller.ts b/src/renderer/api/navidrome/navidrome-controller.ts index 33eb367a..d5b60170 100644 --- a/src/renderer/api/navidrome/navidrome-controller.ts +++ b/src/renderer/api/navidrome/navidrome-controller.ts @@ -1,6 +1,6 @@ import { ndApiClient } from '/@/renderer/api/navidrome/navidrome-api'; import { ndNormalize } from '/@/renderer/api/navidrome/navidrome-normalize'; -import { NavidromeExtensions, ndType } from '/@/renderer/api/navidrome/navidrome-types'; +import { ndType } from '/@/renderer/api/navidrome/navidrome-types'; import { ssApiClient } from '/@/renderer/api/subsonic/subsonic-api'; import semverCoerce from 'semver/functions/coerce'; import semverGte from 'semver/functions/gte'; @@ -541,7 +541,7 @@ const getServerInfo = async (args: ServerInfoArgs): Promise => { const features: ServerFeatures = { lyricsMultipleStructured: !!navidromeFeatures[SubsonicExtensions.SONG_LYRICS], - playlistsSmart: !!navidromeFeatures[NavidromeExtensions.SMART_PLAYLISTS], + playlistsSmart: !!navidromeFeatures[ServerFeature.PLAYLISTS_SMART], }; return { features, id: apiClientProps.server?.id, version: ping.body.serverVersion! }; diff --git a/src/renderer/api/navidrome/navidrome-types.ts b/src/renderer/api/navidrome/navidrome-types.ts index 6165046a..b63b5442 100644 --- a/src/renderer/api/navidrome/navidrome-types.ts +++ b/src/renderer/api/navidrome/navidrome-types.ts @@ -343,10 +343,6 @@ const removeFromPlaylistParameters = z.object({ id: z.array(z.string()), }); -export enum NavidromeExtensions { - SMART_PLAYLISTS = 'smartPlaylists', -} - export const ndType = { _enum: { albumArtistList: ndAlbumArtistListSort, diff --git a/src/renderer/features/playlists/components/update-playlist-form.tsx b/src/renderer/features/playlists/components/update-playlist-form.tsx index 1192fdad..72e1d876 100644 --- a/src/renderer/features/playlists/components/update-playlist-form.tsx +++ b/src/renderer/features/playlists/components/update-playlist-form.tsx @@ -76,7 +76,7 @@ export const UpdatePlaylistForm = ({ users, query, body, onCancel }: UpdatePlayl }); const isPublicDisplayed = server?.type === ServerType.NAVIDROME; - const isOwnerDisplayed = server?.type === ServerType.NAVIDROME; + const isOwnerDisplayed = server?.type === ServerType.NAVIDROME && userList; const isSubmitDisabled = !form.values.name || mutation.isLoading; return ( @@ -154,11 +154,17 @@ export const openUpdatePlaylistModal = async (args: { const users = server?.type === ServerType.NAVIDROME - ? await queryClient.fetchQuery({ - queryFn: ({ signal }) => - api.controller.getUserList({ apiClientProps: { server, signal }, query }), - queryKey: queryKeys.users.list(server?.id || '', query), - }) + ? await queryClient + .fetchQuery({ + queryFn: ({ signal }) => + api.controller.getUserList({ apiClientProps: { server, signal }, query }), + queryKey: queryKeys.users.list(server?.id || '', query), + }) + .catch((error) => { + // This eror most likely happens if the user is not an admin + console.error(error); + return null; + }) : null; openModal({