diff --git a/frontend/src/Activity/Queue/Details/QueueDetailsProvider.tsx b/frontend/src/Activity/Queue/Details/QueueDetailsProvider.tsx index ef6c50ab1..75976b452 100644 --- a/frontend/src/Activity/Queue/Details/QueueDetailsProvider.tsx +++ b/frontend/src/Activity/Queue/Details/QueueDetailsProvider.tsx @@ -89,15 +89,15 @@ export function useQueueDetailsForSeries( return acc; } - if (seasonNumber != null && item.seasonNumber !== seasonNumber) { + if ( + seasonNumber != null && + !item.seasonNumbers?.includes(seasonNumber) + ) { return acc; } - acc.count++; - - if (item.episodeHasFile) { - acc.episodesWithFiles++; - } + acc.count += item.episodeIds.length; + acc.episodesWithFiles += item.episodesWithFilesCount; return acc; }, diff --git a/frontend/src/Activity/Queue/Queue.tsx b/frontend/src/Activity/Queue/Queue.tsx index 459ff196d..dd8259487 100644 --- a/frontend/src/Activity/Queue/Queue.tsx +++ b/frontend/src/Activity/Queue/Queue.tsx @@ -365,7 +365,7 @@ function QueueContent() { selectedIds.every((id: number) => { const item = records.find((i) => i.id === id); - return !!(item && item.seriesId && item.episodeId); + return !!(item && item.seriesId && item.episodeIds.length); }) } isPending={ diff --git a/frontend/src/Calendar/Agenda/AgendaEvent.tsx b/frontend/src/Calendar/Agenda/AgendaEvent.tsx index 705fea29a..d0ab3e7fb 100644 --- a/frontend/src/Calendar/Agenda/AgendaEvent.tsx +++ b/frontend/src/Calendar/Agenda/AgendaEvent.tsx @@ -154,10 +154,7 @@ function AgendaEvent(props: AgendaEventProps) { {queueItem ? ( - + ) : null} diff --git a/frontend/src/Calendar/CalendarMissingEpisodeSearchButton.tsx b/frontend/src/Calendar/CalendarMissingEpisodeSearchButton.tsx index 91aa6d666..b206daa61 100644 --- a/frontend/src/Calendar/CalendarMissingEpisodeSearchButton.tsx +++ b/frontend/src/Calendar/CalendarMissingEpisodeSearchButton.tsx @@ -39,9 +39,7 @@ const useMissingEpisodeIdsSelector = () => { moment(airDateUtc).isAfter(start) && moment(airDateUtc).isBefore(end) && isBefore(episode.airDateUtc) && - !queueDetails.some( - (details) => !!details.episode && details.episode.id === episode.id - ) + !queueDetails.some((details) => details.episodeIds?.includes(episode.id)) ) { acc.push(episode.id); } diff --git a/frontend/src/typings/Queue.ts b/frontend/src/typings/Queue.ts index 885ceaa7d..b43a6adc7 100644 --- a/frontend/src/typings/Queue.ts +++ b/frontend/src/typings/Queue.ts @@ -42,15 +42,13 @@ interface Queue extends ModelBase { protocol: DownloadProtocol; downloadClient: string; outputPath: string; - episodeHasFile: boolean; + episodesWithFilesCount: number; seriesId?: number; - episodeId?: number; episodeIds: number[]; - seasonNumber?: number; seasonNumbers: number[]; downloadClientHasPostImportCategory: boolean; isFullSeason: boolean; - episode?: Episode; + episodes?: Episode[]; } export default Queue;