1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-28 23:07:13 -04:00

Improve typings in FormInputGroup

(cherry picked from commit 6838f068bcd04b770cd9c53873f160be97ea745f)
This commit is contained in:
Mark McDowall
2025-01-03 09:47:17 -08:00
committed by Bogdan
parent 8fb2f64e98
commit 2c81f3be0f
43 changed files with 321 additions and 301 deletions
@@ -8,6 +8,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes } from 'Helpers/Props';
import { InputChanged } from 'typings/inputs';
import translate from 'Utilities/String/translate';
import styles from './ManageDownloadClientsEditModalContent.css';
@@ -57,7 +58,7 @@ function ManageDownloadClientsEditModalContent(
const [removeCompletedDownloads, setRemoveCompletedDownloads] =
useState(NO_CHANGE);
const [removeFailedDownloads, setRemoveFailedDownloads] = useState(NO_CHANGE);
const [priority, setPriority] = useState<null | string | number>(null);
const [priority, setPriority] = useState<null | number>(null);
const save = useCallback(() => {
let hasChanges = false;
@@ -97,29 +98,26 @@ function ManageDownloadClientsEditModalContent(
onModalClose,
]);
const onInputChange = useCallback(
({ name, value }: { name: string; value: string }) => {
switch (name) {
case 'enable':
setEnable(value);
break;
case 'priority':
setPriority(value);
break;
case 'removeCompletedDownloads':
setRemoveCompletedDownloads(value);
break;
case 'removeFailedDownloads':
setRemoveFailedDownloads(value);
break;
default:
console.warn(
`EditDownloadClientsModalContent Unknown Input: '${name}'`
);
}
},
[]
);
const onInputChange = useCallback(({ name, value }: InputChanged) => {
switch (name) {
case 'enable':
setEnable(value as string);
break;
case 'priority':
setPriority(value as number);
break;
case 'removeCompletedDownloads':
setRemoveCompletedDownloads(value as string);
break;
case 'removeFailedDownloads':
setRemoveFailedDownloads(value as string);
break;
default:
console.warn(
`EditDownloadClientsModalContent Unknown Input: '${name}'`
);
}
}, []);
const selectedCount = downloadClientIds.length;
@@ -36,6 +36,7 @@ function BackupSettings(props) {
type={inputTypes.PATH}
name="backupFolder"
helpText={translate('BackupFolderHelpText')}
includeFiles={false}
onChange={onInputChange}
{...backupFolder}
/>
@@ -22,6 +22,7 @@ import {
} from 'Store/Actions/settingsActions';
import selectSettings from 'Store/Selectors/selectSettings';
import ImportListExclusion from 'typings/ImportListExclusion';
import { InputChanged } from 'typings/inputs';
import { PendingSection } from 'typings/pending';
import translate from 'Utilities/String/translate';
import styles from './EditImportListExclusionModalContent.css';
@@ -104,9 +105,9 @@ function EditImportListExclusionModalContent({
}, [dispatch, id]);
const onInputChange = useCallback(
(payload: { name: string; value: string | number }) => {
(change: InputChanged) => {
// @ts-expect-error 'setImportListExclusionValue' isn't typed yet
dispatch(setImportListExclusionValue(payload));
dispatch(setImportListExclusionValue(change));
},
[dispatch]
);
@@ -142,7 +142,7 @@ function EditImportListModalContent(props) {
<FormLabel>{translate('Monitor')}</FormLabel>
<FormInputGroup
type={inputTypes.MOVIE_MONITORED_SELECT}
type={inputTypes.MONITOR_MOVIES_SELECT}
name="monitor"
helpText={translate('ListMonitorMovieHelpText')}
{...monitor}
@@ -8,6 +8,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes } from 'Helpers/Props';
import { InputChanged } from 'typings/inputs';
import translate from 'Utilities/String/translate';
import styles from './ManageImportListsEditModalContent.css';
@@ -106,30 +107,27 @@ function ManageImportListsEditModalContent(
onModalClose,
]);
const onInputChange = useCallback(
({ name, value }: { name: string; value: string }) => {
switch (name) {
case 'enabled':
setEnabled(value);
break;
case 'enableAuto':
setEnableAuto(value);
break;
case 'qualityProfileId':
setQualityProfileId(value);
break;
case 'minimumAvailability':
setMinimumAvailability(value);
break;
case 'rootFolderPath':
setRootFolderPath(value);
break;
default:
console.warn(`EditImportListModalContent Unknown Input: '${name}'`);
}
},
[]
);
const onInputChange = useCallback(({ name, value }: InputChanged) => {
switch (name) {
case 'enabled':
setEnabled(value as string);
break;
case 'enableAuto':
setEnableAuto(value as string);
break;
case 'qualityProfileId':
setQualityProfileId(value as string);
break;
case 'minimumAvailability':
setMinimumAvailability(value as string);
break;
case 'rootFolderPath':
setRootFolderPath(value as string);
break;
default:
console.warn(`EditImportListModalContent Unknown Input: '${name}'`);
}
}, []);
const selectedCount = importListIds.length;
@@ -8,6 +8,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes } from 'Helpers/Props';
import { InputChanged } from 'typings/inputs';
import translate from 'Utilities/String/translate';
import styles from './ManageIndexersEditModalContent.css';
@@ -57,7 +58,7 @@ function ManageIndexersEditModalContent(
const [enableAutomaticSearch, setEnableAutomaticSearch] = useState(NO_CHANGE);
const [enableInteractiveSearch, setEnableInteractiveSearch] =
useState(NO_CHANGE);
const [priority, setPriority] = useState<null | string | number>(null);
const [priority, setPriority] = useState<null | number>(null);
const save = useCallback(() => {
let hasChanges = false;
@@ -97,27 +98,24 @@ function ManageIndexersEditModalContent(
onModalClose,
]);
const onInputChange = useCallback(
({ name, value }: { name: string; value: string }) => {
switch (name) {
case 'enableRss':
setEnableRss(value);
break;
case 'enableAutomaticSearch':
setEnableAutomaticSearch(value);
break;
case 'enableInteractiveSearch':
setEnableInteractiveSearch(value);
break;
case 'priority':
setPriority(value);
break;
default:
console.warn(`EditIndexersModalContent Unknown Input: '${name}'`);
}
},
[]
);
const onInputChange = useCallback(({ name, value }: InputChanged) => {
switch (name) {
case 'enableRss':
setEnableRss(value as string);
break;
case 'enableAutomaticSearch':
setEnableAutomaticSearch(value as string);
break;
case 'enableInteractiveSearch':
setEnableInteractiveSearch(value as string);
break;
case 'priority':
setPriority(value as number);
break;
default:
console.warn(`EditIndexersModalContent Unknown Input: '${name}'`);
}
}, []);
const selectedCount = indexerIds.length;
@@ -19,6 +19,7 @@ import {
setNamingSettingsValue,
} from 'Store/Actions/settingsActions';
import createSettingsSectionSelector from 'Store/Selectors/createSettingsSectionSelector';
import { InputChanged } from 'typings/inputs';
import NamingConfig from 'typings/Settings/NamingConfig';
import translate from 'Utilities/String/translate';
import NamingModal from './NamingModal';
@@ -77,9 +78,9 @@ function Naming() {
}, [dispatch]);
const handleInputChange = useCallback(
({ name, value }: { name: string; value: string }) => {
(change: InputChanged) => {
// @ts-expect-error 'setNamingSettingsValue' isn't typed yet
dispatch(setNamingSettingsValue({ name, value }));
dispatch(setNamingSettingsValue(change));
if (namingExampleTimeout.current) {
clearTimeout(namingExampleTimeout.current);
@@ -19,6 +19,7 @@ import {
setReleaseProfileValue,
} from 'Store/Actions/Settings/releaseProfiles';
import selectSettings from 'Store/Selectors/selectSettings';
import { InputChanged } from 'typings/inputs';
import ReleaseProfile from 'typings/Settings/ReleaseProfile';
import translate from 'Utilities/String/translate';
import styles from './EditReleaseProfileModalContent.css';
@@ -102,9 +103,9 @@ function EditReleaseProfileModalContent({
}, [dispatch, id]);
const handleInputChange = useCallback(
(payload: { name: string; value: string | number }) => {
(change: InputChanged) => {
// @ts-expect-error 'setReleaseProfileValue' isn't typed yet
dispatch(setReleaseProfileValue(payload));
dispatch(setReleaseProfileValue(change));
},
[dispatch]
);
@@ -125,7 +126,6 @@ function EditReleaseProfileModalContent({
name="name"
{...name}
placeholder={translate('OptionalName')}
canEdit={true}
onChange={handleInputChange}
/>
</FormGroup>