sonarr-repo-only/frontend/src/Series/Editor/Delete/DeleteSeriesModalContentCon...

60 lines
1.5 KiB
JavaScript

import _ from 'lodash';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { setDeleteOption } from 'Store/Actions/seriesActions';
import { bulkDeleteSeries } from 'Store/Actions/seriesEditorActions';
import createAllSeriesSelector from 'Store/Selectors/createAllSeriesSelector';
import DeleteSeriesModalContent from './DeleteSeriesModalContent';
function createMapStateToProps() {
return createSelector(
(state, { seriesIds }) => seriesIds,
(state) => state.series.deleteOptions,
createAllSeriesSelector(),
(seriesIds, deleteOptions, allSeries) => {
const selectedSeries = _.intersectionWith(allSeries, seriesIds, (s, id) => {
return s.id === id;
});
const sortedSeries = _.orderBy(selectedSeries, 'sortTitle');
const series = _.map(sortedSeries, (s) => {
return {
title: s.title,
path: s.path
};
});
return {
series,
deleteOptions
};
}
);
}
function createMapDispatchToProps(dispatch, props) {
return {
setDeleteOption(option) {
dispatch(
setDeleteOption({
[option.name]: option.value
})
);
},
onDeleteSelectedPress(deleteFiles, addImportListExclusion) {
dispatch(
bulkDeleteSeries({
seriesIds: props.seriesIds,
deleteFiles,
addImportListExclusion
})
);
props.onModalClose();
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(DeleteSeriesModalContent);