From fde87a38f997ef6ed66e2a64c37a8cdad53df2f1 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 26 Aug 2024 08:11:17 +0300 Subject: [PATCH] Convert MovieQuality to TypeScript --- .../{MovieQuality.js => MovieQuality.tsx} | 71 +++++++++---------- 1 file changed, 33 insertions(+), 38 deletions(-) rename frontend/src/Movie/{MovieQuality.js => MovieQuality.tsx} (54%) diff --git a/frontend/src/Movie/MovieQuality.js b/frontend/src/Movie/MovieQuality.tsx similarity index 54% rename from frontend/src/Movie/MovieQuality.js rename to frontend/src/Movie/MovieQuality.tsx index fad9a0e635..94479b9c86 100644 --- a/frontend/src/Movie/MovieQuality.js +++ b/frontend/src/Movie/MovieQuality.tsx @@ -1,11 +1,16 @@ -import PropTypes from 'prop-types'; import React from 'react'; import Label from 'Components/Label'; import { kinds } from 'Helpers/Props'; +import { QualityModel } from 'Quality/Quality'; import formatBytes from 'Utilities/Number/formatBytes'; import translate from 'Utilities/String/translate'; -function getTooltip(title, quality, size, isMonitored, isCutoffNotMet) { +function getTooltip( + title: string, + quality: QualityModel, + size: number | undefined, + isCutoffNotMet: boolean +) { const revision = quality.revision; if (revision.real && revision.real > 0) { @@ -20,16 +25,18 @@ function getTooltip(title, quality, size, isMonitored, isCutoffNotMet) { title += ` - ${formatBytes(size)}`; } - if (!isMonitored) { - title += ' [Not Monitored]'; - } else if (isCutoffNotMet) { - title += ' [Cutoff Not Met]'; + if (isCutoffNotMet) { + title += ` [${translate('CutoffNotMet')}]`; } return title; } -function revisionLabel(className, quality, showRevision) { +function revisionLabel( + className: string | undefined, + quality: QualityModel, + showRevision: boolean +) { if (!showRevision) { return; } @@ -57,26 +64,29 @@ function revisionLabel(className, quality, showRevision) { ); } + + return null; } -function MovieQuality(props) { +interface MovieQualityProps { + className?: string; + title?: string; + quality: QualityModel; + size?: number; + isCutoffNotMet?: boolean; + showRevision?: boolean; +} + +function MovieQuality(props: MovieQualityProps) { const { className, - title, + title = '', quality, size, - isMonitored, - isCutoffNotMet, - showRevision + isCutoffNotMet = false, + showRevision = false, } = props; - let kind = kinds.DEFAULT; - if (!isMonitored) { - kind = kinds.DISABLED; - } else if (isCutoffNotMet) { - kind = kinds.INVERSE; - } - if (!quality) { return null; } @@ -85,29 +95,14 @@ function MovieQuality(props) { {revisionLabel(className, quality, showRevision)} + + {revisionLabel(className, quality, showRevision)} ); } -MovieQuality.propTypes = { - className: PropTypes.string, - title: PropTypes.string, - quality: PropTypes.object.isRequired, - size: PropTypes.number, - isMonitored: PropTypes.bool, - isCutoffNotMet: PropTypes.bool, - showRevision: PropTypes.bool -}; - -MovieQuality.defaultProps = { - title: '', - isMonitored: true, - showRevision: false -}; - export default MovieQuality;