diff --git a/src/components/ManageSlideOver/index.tsx b/src/components/ManageSlideOver/index.tsx index 7a2c1047..a07df048 100644 --- a/src/components/ManageSlideOver/index.tsx +++ b/src/components/ManageSlideOver/index.tsx @@ -25,6 +25,7 @@ import { } from '@server/constants/media'; import { MediaServerType } from '@server/constants/server'; import type { MediaWatchDataResponse } from '@server/interfaces/api/mediaInterfaces'; +import type { DownloadingItem } from '@server/lib/downloadtracker'; import type { RadarrSettings, SonarrSettings } from '@server/lib/settings'; import type { MovieDetails } from '@server/models/Movie'; import type { TvDetails } from '@server/models/Tv'; @@ -33,6 +34,17 @@ import Link from 'next/link'; import { useIntl } from 'react-intl'; import useSWR from 'swr'; +const filterDuplicateDownloads = ( + items: DownloadingItem[] = [] +): DownloadingItem[] => { + const seen = new Set(); + return items.filter((item) => { + if (seen.has(item.downloadId)) return false; + seen.add(item.downloadId); + return true; + }); +}; + const messages = defineMessages('components.ManageSlideOver', { manageModalTitle: 'Manage {mediaType}', manageModalIssues: 'Open Issues', @@ -230,26 +242,30 @@ const ManageSlideOver = ({