From a9ca3f9083a81a9bd688a26dfa715418b0ff379a Mon Sep 17 00:00:00 2001 From: jeffvli Date: Mon, 8 May 2023 03:33:38 -0700 Subject: [PATCH] Add additional undefined check for custom filters --- .../albums/components/album-list-header-filters.tsx | 10 +++++----- .../songs/components/song-list-header-filters.tsx | 8 ++++---- src/renderer/store/list.store.ts | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/renderer/features/albums/components/album-list-header-filters.tsx b/src/renderer/features/albums/components/album-list-header-filters.tsx index 25ebf5e7..ed622cb7 100644 --- a/src/renderer/features/albums/components/album-list-header-filters.tsx +++ b/src/renderer/features/albums/components/album-list-header-filters.tsx @@ -386,16 +386,16 @@ export const AlbumListHeaderFilters = ({ const isFilterApplied = useMemo(() => { const isNavidromeFilterApplied = server?.type === ServerType.NAVIDROME && - filter?._custom.navidrome && - Object.values(filter._custom.navidrome).some((value) => value !== undefined); + filter?._custom?.navidrome && + Object.values(filter?._custom?.navidrome).some((value) => value !== undefined); const isJellyfinFilterApplied = server?.type === ServerType.JELLYFIN && - filter?._custom.jellyfin && - Object.values(filter._custom.jellyfin).some((value) => value !== undefined); + filter?._custom?.jellyfin && + Object.values(filter?._custom?.jellyfin).some((value) => value !== undefined); return isNavidromeFilterApplied || isJellyfinFilterApplied; - }, [filter._custom.jellyfin, filter._custom.navidrome, server?.type]); + }, [filter?._custom?.jellyfin, filter?._custom?.navidrome, server?.type]); return ( diff --git a/src/renderer/features/songs/components/song-list-header-filters.tsx b/src/renderer/features/songs/components/song-list-header-filters.tsx index 451236a0..434ce971 100644 --- a/src/renderer/features/songs/components/song-list-header-filters.tsx +++ b/src/renderer/features/songs/components/song-list-header-filters.tsx @@ -302,17 +302,17 @@ export const SongListHeaderFilters = ({ const isNavidromeFilterApplied = server?.type === ServerType.NAVIDROME && filter._custom?.navidrome && - Object.values(filter._custom?.navidrome).some((value) => value !== undefined); + Object.values(filter?._custom?.navidrome).some((value) => value !== undefined); const isJellyfinFilterApplied = server?.type === ServerType.JELLYFIN && - filter._custom?.jellyfin && - Object.values(filter._custom?.jellyfin) + filter?._custom?.jellyfin && + Object.values(filter?._custom?.jellyfin) .filter((value) => value !== 'Audio') // Don't account for includeItemTypes: Audio .some((value) => value !== undefined); return isNavidromeFilterApplied || isJellyfinFilterApplied; - }, [filter._custom?.jellyfin, filter._custom?.navidrome, server?.type]); + }, [filter?._custom?.jellyfin, filter?._custom?.navidrome, server?.type]); return ( diff --git a/src/renderer/store/list.store.ts b/src/renderer/store/list.store.ts index 67bd2cb5..5f3dc889 100644 --- a/src/renderer/store/list.store.ts +++ b/src/renderer/store/list.store.ts @@ -87,13 +87,13 @@ export const useListStore = create()( ...state.item.song.filter, ...state.detail[args.key]?.filter, _custom: { - ...state.detail[args.key]?.filter._custom, + ...state.detail[args.key]?.filter?._custom, jellyfin: { - ...state.detail[args.key]?.filter._custom.jellyfin, + ...state.detail[args.key]?.filter?._custom?.jellyfin, includeItemTypes: 'Audio', }, navidrome: { - ...state.detail[args.key]?.filter._custom.navidrome, + ...state.detail[args.key]?.filter?._custom?.navidrome, }, }, };