1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-25 22:46:31 -04:00

Typings cleanup and improvements

This commit is contained in:
Mark McDowall
2023-04-04 09:21:34 -07:00
parent 5326a102e2
commit b2c43fb2a6
92 changed files with 1019 additions and 346 deletions
@@ -15,6 +15,7 @@ import EpisodeQuality from 'Episode/EpisodeQuality';
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
import Language from 'Language/Language';
import { QualityModel } from 'Quality/Quality';
import CustomFormat from 'typings/CustomFormat';
import formatDateTime from 'Utilities/Date/formatDateTime';
import formatAge from 'Utilities/Number/formatAge';
import formatBytes from 'Utilities/Number/formatBytes';
@@ -25,7 +26,11 @@ import ReleaseEpisode from './ReleaseEpisode';
import ReleaseSceneIndicator from './ReleaseSceneIndicator';
import styles from './InteractiveSearchRow.css';
function getDownloadIcon(isGrabbing, isGrabbed, grabError) {
function getDownloadIcon(
isGrabbing: boolean,
isGrabbed: boolean,
grabError?: string
) {
if (isGrabbing) {
return icons.SPINNER;
} else if (isGrabbed) {
@@ -37,7 +42,11 @@ function getDownloadIcon(isGrabbing, isGrabbed, grabError) {
return icons.DOWNLOAD;
}
function getDownloadTooltip(isGrabbing, isGrabbed, grabError) {
function getDownloadTooltip(
isGrabbing: boolean,
isGrabbed: boolean,
grabError?: string
) {
if (isGrabbing) {
return '';
} else if (isGrabbed) {
@@ -65,7 +74,7 @@ interface InteractiveSearchRowProps {
leechers?: number;
quality: QualityModel;
languages: Language[];
customFormats?: object[];
customFormats: CustomFormat[];
customFormatScore: number;
sceneMapping?: object;
seasonNumber?: number;
@@ -4,7 +4,7 @@ import styles from './SelectDownloadClientRow.css';
interface SelectSeasonRowProps {
id: number;
name: number;
name: string;
priority: number;
onDownloadClientSelect(downloadClientId: number): unknown;
}
@@ -19,7 +19,7 @@ interface OverrideMatchModalProps {
quality: QualityModel;
protocol: DownloadProtocol;
isGrabbing: boolean;
grabError: string;
grabError?: string;
onModalClose(): void;
}
@@ -12,6 +12,7 @@ import DownloadProtocol from 'DownloadClient/DownloadProtocol';
import EpisodeLanguages from 'Episode/EpisodeLanguages';
import EpisodeQuality from 'Episode/EpisodeQuality';
import SelectEpisodeModal from 'InteractiveImport/Episode/SelectEpisodeModal';
import { SelectedEpisode } from 'InteractiveImport/Episode/SelectEpisodeModalContent';
import SelectLanguageModal from 'InteractiveImport/Language/SelectLanguageModal';
import SelectQualityModal from 'InteractiveImport/Quality/SelectQualityModal';
import SelectSeasonModal from 'InteractiveImport/Season/SelectSeasonModal';
@@ -49,7 +50,7 @@ interface OverrideMatchModalContentProps {
quality: QualityModel;
protocol: DownloadProtocol;
isGrabbing: boolean;
grabError: string;
grabError?: string;
onModalClose(): void;
}
@@ -70,7 +71,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
const [episodes, setEpisodes] = useState(props.episodes);
const [languages, setLanguages] = useState(props.languages);
const [quality, setQuality] = useState(props.quality);
const [downloadClientId, setDownloadClientId] = useState(null);
const [downloadClientId, setDownloadClientId] = useState<number | null>(null);
const [error, setError] = useState<string | null>(null);
const [selectModalOpen, setSelectModalOpen] = useState<SelectType | null>(
null
@@ -137,7 +138,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
}, [setSelectModalOpen]);
const onEpisodesSelect = useCallback(
(episodeMap) => {
(episodeMap: SelectedEpisode[]) => {
setEpisodes(episodeMap[0].episodes);
setSelectModalOpen(null);
},
@@ -149,7 +150,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
}, [setSelectModalOpen]);
const onQualitySelect = useCallback(
(quality) => {
(quality: QualityModel) => {
setQuality(quality);
setSelectModalOpen(null);
},
@@ -161,7 +162,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
}, [setSelectModalOpen]);
const onLanguagesSelect = useCallback(
(languages) => {
(languages: Language[]) => {
setLanguages(languages);
setSelectModalOpen(null);
},
@@ -173,7 +174,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
}, [setSelectModalOpen]);
const onDownloadClientSelect = useCallback(
(downloadClientId) => {
(downloadClientId: number) => {
setDownloadClientId(downloadClientId);
setSelectModalOpen(null);
},
@@ -264,7 +265,7 @@ function OverrideMatchModalContent(props: OverrideMatchModalContentProps) {
data={
<OverrideMatchData
value={episodeInfo}
isDisabled={!series || isNaN(seasonNumber)}
isDisabled={!series || isNaN(Number(seasonNumber))}
onPress={onSelectEpisodePress}
/>
}
@@ -9,9 +9,9 @@ import { icons, tooltipPositions } from 'Helpers/Props';
import styles from './ReleaseSceneIndicator.css';
function formatReleaseNumber(
seasonNumber,
episodeNumbers,
absoluteEpisodeNumbers
seasonNumber: number | undefined,
episodeNumbers: number[] | undefined,
absoluteEpisodeNumbers: number[] | undefined
) {
if (episodeNumbers && episodeNumbers.length) {
if (episodeNumbers.length > 1) {