diff --git a/frontend/src/Series/Details/SeriesDetails.css b/frontend/src/Series/Details/SeriesDetails.css index f62568a1d..cdda349f0 100644 --- a/frontend/src/Series/Details/SeriesDetails.css +++ b/frontend/src/Series/Details/SeriesDetails.css @@ -130,6 +130,7 @@ .sizeOnDisk, .qualityProfileName, .originalLanguageName, +.statusName, .network, .links, .tags { diff --git a/frontend/src/Series/Details/SeriesDetails.css.d.ts b/frontend/src/Series/Details/SeriesDetails.css.d.ts index ea026f8de..9dbf4d792 100644 --- a/frontend/src/Series/Details/SeriesDetails.css.d.ts +++ b/frontend/src/Series/Details/SeriesDetails.css.d.ts @@ -24,6 +24,7 @@ interface CssExports { 'seriesNavigationButton': string; 'seriesNavigationButtons': string; 'sizeOnDisk': string; + 'statusName': string; 'tags': string; 'title': string; 'titleContainer': string; diff --git a/frontend/src/Series/Details/SeriesDetails.js b/frontend/src/Series/Details/SeriesDetails.js index 2871212ea..116ce5d2f 100644 --- a/frontend/src/Series/Details/SeriesDetails.js +++ b/frontend/src/Series/Details/SeriesDetails.js @@ -230,7 +230,7 @@ class SeriesDetails extends Component { } = this.state; const statusDetails = getSeriesStatusDetails(status); - const runningYears = statusDetails.title === translate('Ended') ? `${year}-${getDateYear(lastAired)}` : `${year}-`; + const runningYears = status === 'ended' ? `${year}-${getDateYear(lastAired)}` : `${year}-`; let episodeFilesCountMessage = translate('SeriesDetailsNoEpisodeFiles'); @@ -509,13 +509,14 @@ class SeriesDetails extends Component { className={styles.detailsLabel} title={statusDetails.message} size={sizes.LARGE} + kind={status === 'deleted' ? kinds.INVERSE : undefined} >
- + {statusDetails.title}
diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css index 999f15a41..f8254dda8 100644 --- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css +++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css @@ -25,7 +25,7 @@ $hoverScale: 1.05; } } -.ended { +.status { position: absolute; top: 0; right: 0; @@ -34,8 +34,15 @@ $hoverScale: 1.05; height: 0; border-width: 0 25px 25px 0; border-style: solid; - border-color: transparent var(--dangerColor) transparent transparent; color: var(--white); + + &.ended { + border-color: transparent var(--dangerColor) transparent transparent; + } + + &.deleted { + border-color: transparent var(--gray) transparent transparent; + } } .info { diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts index 5dfbab8ee..7a7226805 100644 --- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts +++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts @@ -3,6 +3,7 @@ interface CssExports { 'actions': string; 'content': string; + 'deleted': string; 'details': string; 'ended': string; 'info': string; @@ -11,6 +12,7 @@ interface CssExports { 'overviewContainer': string; 'poster': string; 'posterContainer': string; + 'status': string; 'tags': string; 'title': string; 'titleRow': string; diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx b/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx index f7d7c3b50..5be820f87 100644 --- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx +++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx @@ -1,3 +1,4 @@ +import classNames from 'classnames'; import React, { useCallback, useMemo, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import TextTruncate from 'react-text-truncate'; @@ -146,9 +147,19 @@ function SeriesIndexOverview(props: SeriesIndexOverviewProps) { ) : null} - {status === 'ended' && ( -
- )} + {status === 'ended' ? ( +
+ ) : null} + + {status === 'deleted' ? ( +
+ ) : null} {status === 'ended' ? ( -
+
+ ) : null} + + {status === 'deleted' ? ( +
) : null} diff --git a/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx b/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx index 2c2fb525e..6f710e37a 100644 --- a/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx +++ b/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx @@ -5,6 +5,7 @@ import { sizes } from 'Helpers/Props'; import createSeriesQueueItemsDetailsSelector, { SeriesQueueDetails, } from 'Series/Index/createSeriesQueueDetailsSelector'; +import { SeriesStatus } from 'Series/Series'; import getProgressBarKind from 'Utilities/Series/getProgressBarKind'; import translate from 'Utilities/String/translate'; import styles from './SeriesIndexProgressBar.css'; @@ -13,7 +14,7 @@ interface SeriesIndexProgressBarProps { seriesId: number; seasonNumber?: number; monitored: boolean; - status: string; + status: SeriesStatus; episodeCount: number; episodeFileCount: number; totalEpisodeCount: number; diff --git a/frontend/src/Series/Index/Table/SeriesStatusCell.tsx b/frontend/src/Series/Index/Table/SeriesStatusCell.tsx index 7e190bc9f..8de28bdab 100644 --- a/frontend/src/Series/Index/Table/SeriesStatusCell.tsx +++ b/frontend/src/Series/Index/Table/SeriesStatusCell.tsx @@ -4,6 +4,7 @@ import Icon from 'Components/Icon'; import MonitorToggleButton from 'Components/MonitorToggleButton'; import VirtualTableRowCell from 'Components/Table/Cells/TableRowCell'; import { icons } from 'Helpers/Props'; +import { SeriesStatus } from 'Series/Series'; import { getSeriesStatusDetails } from 'Series/SeriesStatus'; import { toggleSeriesMonitored } from 'Store/Actions/seriesActions'; import translate from 'Utilities/String/translate'; @@ -13,7 +14,7 @@ interface SeriesStatusCellProps { className: string; seriesId: number; monitored: boolean; - status: string; + status: SeriesStatus; isSelectMode: boolean; isSaving: boolean; component?: React.ElementType; diff --git a/frontend/src/Series/Series.ts b/frontend/src/Series/Series.ts index c93ccf3ff..be2215f7e 100644 --- a/frontend/src/Series/Series.ts +++ b/frontend/src/Series/Series.ts @@ -15,6 +15,8 @@ export type SeriesMonitor = | 'unmonitorSpecials' | 'none'; +export type SeriesStatus = 'continuing' | 'ended' | 'upcoming' | 'deleted'; + export type MonitorNewItems = 'all' | 'none'; export interface Image { @@ -86,7 +88,7 @@ interface Series extends ModelBase { seriesType: SeriesType; sortTitle: string; statistics: Statistics; - status: string; + status: SeriesStatus; tags: number[]; title: string; titleSlug: string; diff --git a/frontend/src/Series/SeriesStatus.js b/frontend/src/Series/SeriesStatus.ts similarity index 65% rename from frontend/src/Series/SeriesStatus.js rename to frontend/src/Series/SeriesStatus.ts index da3bc68c3..e6174740c 100644 --- a/frontend/src/Series/SeriesStatus.js +++ b/frontend/src/Series/SeriesStatus.ts @@ -1,32 +1,31 @@ - import { icons } from 'Helpers/Props'; +import { SeriesStatus } from 'Series/Series'; import translate from 'Utilities/String/translate'; -export function getSeriesStatusDetails(status) { - +export function getSeriesStatusDetails(status: SeriesStatus) { let statusDetails = { icon: icons.SERIES_CONTINUING, title: translate('Continuing'), - message: translate('ContinuingSeriesDescription') + message: translate('ContinuingSeriesDescription'), }; if (status === 'deleted') { statusDetails = { icon: icons.SERIES_DELETED, title: translate('Deleted'), - message: translate('DeletedSeriesDescription') + message: translate('DeletedSeriesDescription'), }; } else if (status === 'ended') { statusDetails = { icon: icons.SERIES_ENDED, title: translate('Ended'), - message: translate('EndedSeriesDescription') + message: translate('EndedSeriesDescription'), }; } else if (status === 'upcoming') { statusDetails = { icon: icons.SERIES_CONTINUING, title: translate('Upcoming'), - message: translate('UpcomingSeriesDescription') + message: translate('UpcomingSeriesDescription'), }; } diff --git a/frontend/src/Utilities/Series/getProgressBarKind.ts b/frontend/src/Utilities/Series/getProgressBarKind.ts index f45387024..331c39998 100644 --- a/frontend/src/Utilities/Series/getProgressBarKind.ts +++ b/frontend/src/Utilities/Series/getProgressBarKind.ts @@ -1,7 +1,8 @@ import { kinds } from 'Helpers/Props'; +import { SeriesStatus } from 'Series/Series'; function getProgressBarKind( - status: string, + status: SeriesStatus, monitored: boolean, progress: number, isDownloading: boolean