mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-19 17:32:38 +01:00
Convert AvailabilitySelectInput to TypeScript
This commit is contained in:
parent
adaf7444d3
commit
54a5059080
@ -1,69 +0,0 @@
|
|||||||
import PropTypes from 'prop-types';
|
|
||||||
import React from 'react';
|
|
||||||
import translate from 'Utilities/String/translate';
|
|
||||||
import EnhancedSelectInput from './EnhancedSelectInput';
|
|
||||||
|
|
||||||
const availabilityOptions = [
|
|
||||||
{
|
|
||||||
key: 'announced',
|
|
||||||
get value() {
|
|
||||||
return translate('Announced');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'inCinemas',
|
|
||||||
get value() {
|
|
||||||
return translate('InCinemas');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'released',
|
|
||||||
get value() {
|
|
||||||
return translate('Released');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
function AvailabilitySelectInput(props) {
|
|
||||||
const values = [...availabilityOptions];
|
|
||||||
|
|
||||||
const {
|
|
||||||
includeNoChange,
|
|
||||||
includeMixed
|
|
||||||
} = props;
|
|
||||||
|
|
||||||
if (includeNoChange) {
|
|
||||||
values.unshift({
|
|
||||||
key: 'noChange',
|
|
||||||
value: translate('NoChange'),
|
|
||||||
isDisabled: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (includeMixed) {
|
|
||||||
values.unshift({
|
|
||||||
key: 'mixed',
|
|
||||||
value: '(Mixed)',
|
|
||||||
isDisabled: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<EnhancedSelectInput
|
|
||||||
{...props}
|
|
||||||
values={values}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
AvailabilitySelectInput.propTypes = {
|
|
||||||
includeNoChange: PropTypes.bool.isRequired,
|
|
||||||
includeMixed: PropTypes.bool.isRequired
|
|
||||||
};
|
|
||||||
|
|
||||||
AvailabilitySelectInput.defaultProps = {
|
|
||||||
includeNoChange: false,
|
|
||||||
includeMixed: false
|
|
||||||
};
|
|
||||||
|
|
||||||
export default AvailabilitySelectInput;
|
|
67
frontend/src/Components/Form/AvailabilitySelectInput.tsx
Normal file
67
frontend/src/Components/Form/AvailabilitySelectInput.tsx
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import translate from 'Utilities/String/translate';
|
||||||
|
import EnhancedSelectInput from './EnhancedSelectInput';
|
||||||
|
|
||||||
|
interface AvailabilitySelectInputProps {
|
||||||
|
includeNoChange: boolean;
|
||||||
|
includeNoChangeDisabled?: boolean;
|
||||||
|
includeMixed?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IMovieAvailabilityOption {
|
||||||
|
key: string;
|
||||||
|
value: string;
|
||||||
|
format?: string;
|
||||||
|
isDisabled?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const movieAvailabilityOptions: IMovieAvailabilityOption[] = [
|
||||||
|
{
|
||||||
|
key: 'announced',
|
||||||
|
get value() {
|
||||||
|
return translate('Announced');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'inCinemas',
|
||||||
|
get value() {
|
||||||
|
return translate('InCinemas');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'released',
|
||||||
|
get value() {
|
||||||
|
return translate('Released');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
function AvailabilitySelectInput(props: AvailabilitySelectInputProps) {
|
||||||
|
const values = [...movieAvailabilityOptions];
|
||||||
|
|
||||||
|
const {
|
||||||
|
includeNoChange = false,
|
||||||
|
includeNoChangeDisabled = true,
|
||||||
|
includeMixed = false,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
if (includeNoChange) {
|
||||||
|
values.unshift({
|
||||||
|
key: 'noChange',
|
||||||
|
value: translate('NoChange'),
|
||||||
|
isDisabled: includeNoChangeDisabled,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (includeMixed) {
|
||||||
|
values.unshift({
|
||||||
|
key: 'mixed',
|
||||||
|
value: `(${translate('Mixed')})`,
|
||||||
|
isDisabled: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return <EnhancedSelectInput {...props} values={values} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AvailabilitySelectInput;
|
Loading…
Reference in New Issue
Block a user