Files
Readarr/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js
T
2017-09-05 23:00:26 -04:00

46 lines
1.2 KiB
JavaScript

import _ from 'lodash';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createAllSeriesSelector from 'Store/Selectors/createAllSeriesSelector';
import { bulkDeleteArtist } from 'Store/Actions/seriesEditorActions';
import DeleteArtistModalContent from './DeleteArtistModalContent';
function createMapStateToProps() {
return createSelector(
(state, { artistIds }) => artistIds,
createAllSeriesSelector(),
(artistIds, allSeries) => {
const selectedSeries = _.intersectionWith(allSeries, artistIds, (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
};
}
);
}
function createMapDispatchToProps(dispatch, props) {
return {
onDeleteSelectedPress(deleteFiles) {
dispatch(bulkDeleteArtist({
artistIds: props.artistIds,
deleteFiles
}));
props.onModalClose();
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(DeleteArtistModalContent);