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.
46 lines
1.5 KiB
46 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(),
|
|
(tracks, episode, commands, dimensions) => {
|
|
const filteredItems = _.filter(tracks.items, { albumId: episode.id });
|
|
const mediumSortedItems = _.orderBy(filteredItems, 'absoluteTrackNumber');
|
|
const items = _.orderBy(mediumSortedItems, 'mediumNumber');
|
|
|
|
return {
|
|
network: episode.label,
|
|
qualityProfileId: episode.profileId,
|
|
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);
|