1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-20 21:54:58 -04:00

New: Improve 'Select All' in Library Import

Closes #7909
This commit is contained in:
Mark McDowall
2025-10-25 16:13:31 -07:00
parent 08f0a5a960
commit 910b85f37d
32 changed files with 666 additions and 439 deletions
@@ -2,6 +2,7 @@ import { orderBy } from 'lodash';
import React, { useCallback, useMemo, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { createSelector } from 'reselect';
import { useSelect } from 'App/Select/SelectContext';
import AppState from 'App/State/AppState';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
@@ -20,8 +21,7 @@ import formatBytes from 'Utilities/Number/formatBytes';
import translate from 'Utilities/String/translate';
import styles from './DeleteSeriesModalContent.css';
interface DeleteSeriesModalContentProps {
seriesIds: number[];
export interface DeleteSeriesModalContentProps {
onModalClose(): void;
}
@@ -30,14 +30,15 @@ const selectDeleteOptions = createSelector(
(deleteOptions) => deleteOptions
);
function DeleteSeriesModalContent(props: DeleteSeriesModalContentProps) {
const { seriesIds, onModalClose } = props;
function DeleteSeriesModalContent({
onModalClose,
}: DeleteSeriesModalContentProps) {
const { addImportListExclusion } = useSelector(selectDeleteOptions);
const allSeries: Series[] = useSelector(createAllSeriesSelector());
const dispatch = useDispatch();
const [deleteFiles, setDeleteFiles] = useState(false);
const { useSelectedIds } = useSelect<Series>();
const seriesIds = useSelectedIds();
const series = useMemo((): Series[] => {
const seriesList = seriesIds.map((id) => {
@@ -45,7 +46,7 @@ function DeleteSeriesModalContent(props: DeleteSeriesModalContentProps) {
}) as Series[];
return orderBy(seriesList, ['sortTitle']);
}, [seriesIds, allSeries]);
}, [allSeries, seriesIds]);
const onDeleteFilesChange = useCallback(
({ value }: InputChanged<boolean>) => {
@@ -78,10 +79,10 @@ function DeleteSeriesModalContent(props: DeleteSeriesModalContentProps) {
onModalClose();
}, [
seriesIds,
deleteFiles,
addImportListExclusion,
setDeleteFiles,
seriesIds,
dispatch,
onModalClose,
]);