mirror of
https://github.com/Sonarr/Sonarr
synced 2025-12-08 01:12:53 +01:00
New: Show episode count in season interactive search modal
Closes #7747
This commit is contained in:
parent
0f904e0917
commit
41b65abd1d
6 changed files with 37 additions and 13 deletions
|
|
@ -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}
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
.modalFooter {
|
||||||
|
composes: modalFooter from '~Components/Modal/ModalFooter.css';
|
||||||
|
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
7
frontend/src/Series/Search/SeasonInteractiveSearchModalContent.css.d.ts
vendored
Normal file
7
frontend/src/Series/Search/SeasonInteractiveSearchModalContent.css.d.ts
vendored
Normal 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;
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue