You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/frontend/src/Album/Summary/EpisodeSummaryConnector.js

47 lines
1.5 KiB

import _ from 'lodash';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { deleteTrackFile } from 'Store/Actions/trackFileActions';
import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector';
import createDimensionsSelector from 'Store/Selectors/createDimensionsSelector';
import createArtistSelector from 'Store/Selectors/createArtistSelector';
import createCommandsSelector from 'Store/Selectors/createCommandsSelector';
import EpisodeSummary from './EpisodeSummary';
function createMapStateToProps() {
return createSelector(
(state) => state.tracks,
createEpisodeSelector(),
createCommandsSelector(),
createDimensionsSelector(),
createArtistSelector(),
(tracks, episode, commands, dimensions, artist) => {
const filteredItems = _.filter(tracks.items, { albumId: episode.id });
const mediumSortedItems = _.orderBy(filteredItems, 'absoluteTrackNumber');
const items = _.orderBy(mediumSortedItems, 'mediumNumber');
return {
network: episode.label,
qualityProfileId: artist.qualityProfileId,
releaseDate: episode.releaseDate,
overview: episode.overview,
items,
columns: tracks.columns
};
}
);
}
function createMapDispatchToProps(dispatch, props) {
return {
onDeleteTrackFile() {
dispatch(deleteTrackFile({
id: props.trackFileId,
episodeEntity: props.episodeEntity
}));
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeSummary);