New: Show episode count in season interactive search modal

Closes #7747
This commit is contained in:
Mark McDowall 2025-03-24 20:32:40 -07:00
parent b103005aa2
commit 1b59de16d8
No known key found for this signature in database
6 changed files with 37 additions and 13 deletions

View file

@ -562,6 +562,7 @@ function SeriesDetailsSeason({
<SeasonInteractiveSearchModal
isOpen={isInteractiveSearchModalOpen}
episodeCount={totalEpisodeCount}
seriesId={seriesId}
seasonNumber={seasonNumber}
onModalClose={handleInteractiveSearchModalClose}

View file

@ -6,19 +6,19 @@ import {
cancelFetchReleases,
clearReleases,
} from 'Store/Actions/releaseActions';
import SeasonInteractiveSearchModalContent from './SeasonInteractiveSearchModalContent';
import SeasonInteractiveSearchModalContent, {
SeasonInteractiveSearchModalContentProps,
} from './SeasonInteractiveSearchModalContent';
interface SeasonInteractiveSearchModalProps {
interface SeasonInteractiveSearchModalProps
extends SeasonInteractiveSearchModalContentProps {
isOpen: boolean;
seriesId: number;
seasonNumber: number;
onModalClose(): void;
}
function SeasonInteractiveSearchModal(
props: SeasonInteractiveSearchModalProps
) {
const { isOpen, seriesId, seasonNumber, onModalClose } = props;
const { isOpen, episodeCount, seriesId, seasonNumber, onModalClose } = props;
const dispatch = useDispatch();
@ -44,6 +44,7 @@ function SeasonInteractiveSearchModal(
onModalClose={handleModalClose}
>
<SeasonInteractiveSearchModalContent
episodeCount={episodeCount}
seriesId={seriesId}
seasonNumber={seasonNumber}
onModalClose={handleModalClose}

View file

@ -0,0 +1,5 @@
.modalFooter {
composes: modalFooter from '~Components/Modal/ModalFooter.css';
justify-content: space-between;
}

View file

@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'modalFooter': string;
}
export const cssExports: CssExports;
export default cssExports;

View file

@ -8,18 +8,21 @@ import { scrollDirections } from 'Helpers/Props';
import InteractiveSearch from 'InteractiveSearch/InteractiveSearch';
import formatSeason from 'Season/formatSeason';
import translate from 'Utilities/String/translate';
import styles from './SeasonInteractiveSearchModalContent.css';
interface SeasonInteractiveSearchModalContentProps {
export interface SeasonInteractiveSearchModalContentProps {
episodeCount: number;
seriesId: number;
seasonNumber: number;
onModalClose(): void;
}
function SeasonInteractiveSearchModalContent(
props: SeasonInteractiveSearchModalContentProps
) {
const { seriesId, seasonNumber, onModalClose } = props;
function SeasonInteractiveSearchModalContent({
episodeCount,
seriesId,
seasonNumber,
onModalClose,
}: SeasonInteractiveSearchModalContentProps) {
return (
<ModalContent onModalClose={onModalClose}>
<ModalHeader>
@ -40,7 +43,13 @@ function SeasonInteractiveSearchModalContent(
/>
</ModalBody>
<ModalFooter>
<ModalFooter className={styles.modalFooter}>
<div>
{translate('EpisodesInSeason', {
episodeCount,
})}
</div>
<Button onPress={onModalClose}>{translate('Close')}</Button>
</ModalFooter>
</ModalContent>

View file

@ -649,6 +649,7 @@
"EpisodeHistoryLoadError": "Unable to load episode history",
"EpisodeImported": "Episode Imported",
"EpisodeImportedTooltip": "Episode downloaded successfully and picked up from download client",
"EpisodesInSeason": "{episodeCount} episodes in season",
"EpisodeInfo": "Episode Info",
"EpisodeIsDownloading": "Episode is downloading",
"EpisodeIsNotMonitored": "Episode is not monitored",