mirror of
https://github.com/Radarr/Radarr
synced 2025-01-02 21:34:35 +00:00
Simplify defaults set when adding release profiles and list exclusions
This commit is contained in:
parent
63a7d33e7e
commit
cfdb7a15de
4 changed files with 34 additions and 43 deletions
|
@ -19,7 +19,7 @@ function EditImportListExclusionModal(
|
|||
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const onModalClosePress = useCallback(() => {
|
||||
const handleModalClose = useCallback(() => {
|
||||
dispatch(
|
||||
clearPendingChanges({
|
||||
section: 'settings.importListExclusions',
|
||||
|
@ -29,10 +29,10 @@ function EditImportListExclusionModal(
|
|||
}, [dispatch, onModalClose]);
|
||||
|
||||
return (
|
||||
<Modal size={sizes.MEDIUM} isOpen={isOpen} onModalClose={onModalClosePress}>
|
||||
<Modal size={sizes.MEDIUM} isOpen={isOpen} onModalClose={handleModalClose}>
|
||||
<EditImportListExclusionModalContent
|
||||
{...otherProps}
|
||||
onModalClose={onModalClosePress}
|
||||
onModalClose={handleModalClose}
|
||||
/>
|
||||
</Modal>
|
||||
);
|
||||
|
|
|
@ -32,12 +32,6 @@ const newImportListExclusion = {
|
|||
tmdbId: 0,
|
||||
};
|
||||
|
||||
interface EditImportListExclusionModalContentProps {
|
||||
id?: number;
|
||||
onModalClose: () => void;
|
||||
onDeleteImportListExclusionPress?: () => void;
|
||||
}
|
||||
|
||||
function createImportListExclusionSelector(id?: number) {
|
||||
return createSelector(
|
||||
(state: AppState) => state.settings.importListExclusions,
|
||||
|
@ -63,12 +57,24 @@ function createImportListExclusionSelector(id?: number) {
|
|||
);
|
||||
}
|
||||
|
||||
function EditImportListExclusionModalContent(
|
||||
props: EditImportListExclusionModalContentProps
|
||||
) {
|
||||
const { id, onModalClose, onDeleteImportListExclusionPress } = props;
|
||||
interface EditImportListExclusionModalContentProps {
|
||||
id?: number;
|
||||
onModalClose: () => void;
|
||||
onDeleteImportListExclusionPress?: () => void;
|
||||
}
|
||||
|
||||
function EditImportListExclusionModalContent({
|
||||
id,
|
||||
onModalClose,
|
||||
onDeleteImportListExclusionPress,
|
||||
}: EditImportListExclusionModalContentProps) {
|
||||
const { isFetching, isSaving, item, error, saveError, ...otherProps } =
|
||||
useSelector(createImportListExclusionSelector(id));
|
||||
|
||||
const { movieTitle, movieYear, tmdbId } = item;
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const previousIsSaving = usePrevious(isSaving);
|
||||
|
||||
const dispatchSetImportListExclusionValue = (payload: {
|
||||
name: string;
|
||||
|
@ -78,20 +84,10 @@ function EditImportListExclusionModalContent(
|
|||
dispatch(setImportListExclusionValue(payload));
|
||||
};
|
||||
|
||||
const { isFetching, isSaving, item, error, saveError, ...otherProps } =
|
||||
useSelector(createImportListExclusionSelector(props.id));
|
||||
const previousIsSaving = usePrevious(isSaving);
|
||||
|
||||
const { movieTitle, movieYear, tmdbId } = item;
|
||||
|
||||
useEffect(() => {
|
||||
if (!id) {
|
||||
Object.keys(newImportListExclusion).forEach((name) => {
|
||||
dispatchSetImportListExclusionValue({
|
||||
name,
|
||||
value:
|
||||
newImportListExclusion[name as keyof typeof newImportListExclusion],
|
||||
});
|
||||
Object.entries(newImportListExclusion).forEach(([name, value]) => {
|
||||
dispatchSetImportListExclusionValue({ name, value });
|
||||
});
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
|
@ -101,7 +97,7 @@ function EditImportListExclusionModalContent(
|
|||
if (previousIsSaving && !isSaving && !saveError) {
|
||||
onModalClose();
|
||||
}
|
||||
});
|
||||
}, [previousIsSaving, isSaving, saveError, onModalClose]);
|
||||
|
||||
const onSavePress = useCallback(() => {
|
||||
dispatch(saveImportListExclusion({ id }));
|
||||
|
|
|
@ -19,7 +19,7 @@ function EditReleaseProfileModal({
|
|||
}: EditReleaseProfileModalProps) {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const onModalClosePress = useCallback(() => {
|
||||
const handleModalClose = useCallback(() => {
|
||||
dispatch(
|
||||
clearPendingChanges({
|
||||
section: 'settings.releaseProfiles',
|
||||
|
@ -29,10 +29,10 @@ function EditReleaseProfileModal({
|
|||
}, [dispatch, onModalClose]);
|
||||
|
||||
return (
|
||||
<Modal size={sizes.MEDIUM} isOpen={isOpen} onModalClose={onModalClosePress}>
|
||||
<Modal size={sizes.MEDIUM} isOpen={isOpen} onModalClose={handleModalClose}>
|
||||
<EditReleaseProfileModalContent
|
||||
{...otherProps}
|
||||
onModalClose={onModalClosePress}
|
||||
onModalClose={handleModalClose}
|
||||
/>
|
||||
</Modal>
|
||||
);
|
||||
|
|
|
@ -63,11 +63,11 @@ interface EditReleaseProfileModalContentProps {
|
|||
onDeleteReleaseProfilePress?: () => void;
|
||||
}
|
||||
|
||||
function EditReleaseProfileModalContent(
|
||||
props: EditReleaseProfileModalContentProps
|
||||
) {
|
||||
const { id, onModalClose, onDeleteReleaseProfilePress } = props;
|
||||
|
||||
function EditReleaseProfileModalContent({
|
||||
id,
|
||||
onModalClose,
|
||||
onDeleteReleaseProfilePress,
|
||||
}: EditReleaseProfileModalContentProps) {
|
||||
const { item, isFetching, isSaving, error, saveError, ...otherProps } =
|
||||
useSelector(createReleaseProfileSelector(id));
|
||||
|
||||
|
@ -78,14 +78,9 @@ function EditReleaseProfileModalContent(
|
|||
|
||||
useEffect(() => {
|
||||
if (!id) {
|
||||
Object.keys(newReleaseProfile).forEach((name) => {
|
||||
dispatch(
|
||||
// @ts-expect-error 'setReleaseProfileValue' isn't typed yet
|
||||
setReleaseProfileValue({
|
||||
name,
|
||||
value: newReleaseProfile[name as keyof typeof newReleaseProfile],
|
||||
})
|
||||
);
|
||||
Object.entries(newReleaseProfile).forEach(([name, value]) => {
|
||||
// @ts-expect-error 'setReleaseProfileValue' isn't typed yet
|
||||
dispatch(setReleaseProfileValue({ name, value }));
|
||||
});
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
|
@ -95,7 +90,7 @@ function EditReleaseProfileModalContent(
|
|||
if (previousIsSaving && !isSaving && !saveError) {
|
||||
onModalClose();
|
||||
}
|
||||
});
|
||||
}, [previousIsSaving, isSaving, saveError, onModalClose]);
|
||||
|
||||
const handleSavePress = useCallback(() => {
|
||||
dispatch(saveReleaseProfile({ id }));
|
||||
|
|
Loading…
Reference in a new issue