From 8c3a0ebabae163274b7587afe1f998edb39c5184 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 6 Nov 2023 17:39:42 +0200 Subject: [PATCH] Fixed: Showing already imported episodes as downloading in Series index --- frontend/src/App/State/QueueAppState.ts | 34 +------------- .../Index/createSeriesQueueDetailsSelector.ts | 5 +- frontend/src/typings/Queue.ts | 46 +++++++++++++++++++ 3 files changed, 51 insertions(+), 34 deletions(-) create mode 100644 frontend/src/typings/Queue.ts diff --git a/frontend/src/App/State/QueueAppState.ts b/frontend/src/App/State/QueueAppState.ts index a2936109d..05d74acac 100644 --- a/frontend/src/App/State/QueueAppState.ts +++ b/frontend/src/App/State/QueueAppState.ts @@ -1,42 +1,10 @@ -import ModelBase from 'App/ModelBase'; -import Language from 'Language/Language'; -import { QualityModel } from 'Quality/Quality'; -import CustomFormat from 'typings/CustomFormat'; +import Queue from 'typings/Queue'; import AppSectionState, { AppSectionFilterState, AppSectionItemState, Error, } from './AppSectionState'; -export interface StatusMessage { - title: string; - messages: string[]; -} - -export interface Queue extends ModelBase { - languages: Language[]; - quality: QualityModel; - customFormats: CustomFormat[]; - size: number; - title: string; - sizeleft: number; - timeleft: string; - estimatedCompletionTime: string; - status: string; - trackedDownloadStatus: string; - trackedDownloadState: string; - statusMessages: StatusMessage[]; - errorMessage: string; - downloadId: string; - protocol: string; - downloadClient: string; - outputPath: string; - episodeHasFile: boolean; - seriesId?: number; - episodeId?: number; - seasonNumber?: number; -} - export interface QueueDetailsAppState extends AppSectionState { params: unknown; } diff --git a/frontend/src/Series/Index/createSeriesQueueDetailsSelector.ts b/frontend/src/Series/Index/createSeriesQueueDetailsSelector.ts index 66143ad2c..0b194161a 100644 --- a/frontend/src/Series/Index/createSeriesQueueDetailsSelector.ts +++ b/frontend/src/Series/Index/createSeriesQueueDetailsSelector.ts @@ -15,7 +15,10 @@ function createSeriesQueueDetailsSelector( (queueItems) => { return queueItems.reduce( (acc: SeriesQueueDetails, item) => { - if (item.seriesId !== seriesId) { + if ( + item.trackedDownloadState === 'imported' || + item.seriesId !== seriesId + ) { return acc; } diff --git a/frontend/src/typings/Queue.ts b/frontend/src/typings/Queue.ts new file mode 100644 index 000000000..855173306 --- /dev/null +++ b/frontend/src/typings/Queue.ts @@ -0,0 +1,46 @@ +import ModelBase from 'App/ModelBase'; +import Language from 'Language/Language'; +import { QualityModel } from 'Quality/Quality'; +import CustomFormat from 'typings/CustomFormat'; + +export type QueueTrackedDownloadStatus = 'ok' | 'warning' | 'error'; + +export type QueueTrackedDownloadState = + | 'downloading' + | 'importPending' + | 'importing' + | 'imported' + | 'failedPending' + | 'failed' + | 'ignored'; + +export interface StatusMessage { + title: string; + messages: string[]; +} + +interface Queue extends ModelBase { + languages: Language[]; + quality: QualityModel; + customFormats: CustomFormat[]; + size: number; + title: string; + sizeleft: number; + timeleft: string; + estimatedCompletionTime: string; + status: string; + trackedDownloadStatus: QueueTrackedDownloadStatus; + trackedDownloadState: QueueTrackedDownloadState; + statusMessages: StatusMessage[]; + errorMessage: string; + downloadId: string; + protocol: string; + downloadClient: string; + outputPath: string; + episodeHasFile: boolean; + seriesId?: number; + episodeId?: number; + seasonNumber?: number; +} + +export default Queue;