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 0f904e0917
commit 41b65abd1d
6 changed files with 37 additions and 13 deletions

View file

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

View file

@ -6,19 +6,19 @@ import {
cancelFetchReleases, cancelFetchReleases,
clearReleases, clearReleases,
} from 'Store/Actions/releaseActions'; } from 'Store/Actions/releaseActions';
import SeasonInteractiveSearchModalContent from './SeasonInteractiveSearchModalContent'; import SeasonInteractiveSearchModalContent, {
SeasonInteractiveSearchModalContentProps,
} from './SeasonInteractiveSearchModalContent';
interface SeasonInteractiveSearchModalProps { interface SeasonInteractiveSearchModalProps
extends SeasonInteractiveSearchModalContentProps {
isOpen: boolean; isOpen: boolean;
seriesId: number;
seasonNumber: number;
onModalClose(): void;
} }
function SeasonInteractiveSearchModal( function SeasonInteractiveSearchModal(
props: SeasonInteractiveSearchModalProps props: SeasonInteractiveSearchModalProps
) { ) {
const { isOpen, seriesId, seasonNumber, onModalClose } = props; const { isOpen, episodeCount, seriesId, seasonNumber, onModalClose } = props;
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -44,6 +44,7 @@ function SeasonInteractiveSearchModal(
onModalClose={handleModalClose} onModalClose={handleModalClose}
> >
<SeasonInteractiveSearchModalContent <SeasonInteractiveSearchModalContent
episodeCount={episodeCount}
seriesId={seriesId} seriesId={seriesId}
seasonNumber={seasonNumber} seasonNumber={seasonNumber}
onModalClose={handleModalClose} 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 InteractiveSearch from 'InteractiveSearch/InteractiveSearch';
import formatSeason from 'Season/formatSeason'; import formatSeason from 'Season/formatSeason';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import styles from './SeasonInteractiveSearchModalContent.css';
interface SeasonInteractiveSearchModalContentProps { export interface SeasonInteractiveSearchModalContentProps {
episodeCount: number;
seriesId: number; seriesId: number;
seasonNumber: number; seasonNumber: number;
onModalClose(): void; onModalClose(): void;
} }
function SeasonInteractiveSearchModalContent( function SeasonInteractiveSearchModalContent({
props: SeasonInteractiveSearchModalContentProps episodeCount,
) { seriesId,
const { seriesId, seasonNumber, onModalClose } = props; seasonNumber,
onModalClose,
}: SeasonInteractiveSearchModalContentProps) {
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
@ -40,7 +43,13 @@ function SeasonInteractiveSearchModalContent(
/> />
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter className={styles.modalFooter}>
<div>
{translate('EpisodesInSeason', {
episodeCount,
})}
</div>
<Button onPress={onModalClose}>{translate('Close')}</Button> <Button onPress={onModalClose}>{translate('Close')}</Button>
</ModalFooter> </ModalFooter>
</ModalContent> </ModalContent>

View file

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