Fixed: Episode details on history episode file information

This commit is contained in:
Mark McDowall 2019-05-08 20:15:21 -07:00
parent 2b4519a4ad
commit 30a512c880
3 changed files with 55 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import selectUniqueIds from 'Utilities/Object/selectUniqueIds';
import withCurrentPage from 'Components/withCurrentPage';
import * as historyActions from 'Store/Actions/historyActions';
import { fetchEpisodes, clearEpisodes } from 'Store/Actions/episodeActions';
import { clearEpisodeFiles } from 'Store/Actions/episodeFileActions';
import History from './History';
function createMapStateToProps() {
@ -28,7 +29,8 @@ function createMapStateToProps() {
const mapDispatchToProps = {
...historyActions,
fetchEpisodes,
clearEpisodes
clearEpisodes,
clearEpisodeFiles
};
class HistoryConnector extends Component {
@ -68,6 +70,7 @@ class HistoryConnector extends Component {
unregisterPagePopulator(this.repopulate);
this.props.clearHistory();
this.props.clearEpisodes();
this.props.clearEpisodeFiles();
}
//
@ -150,7 +153,8 @@ HistoryConnector.propTypes = {
setHistoryTableOption: PropTypes.func.isRequired,
clearHistory: PropTypes.func.isRequired,
fetchEpisodes: PropTypes.func.isRequired,
clearEpisodes: PropTypes.func.isRequired
clearEpisodes: PropTypes.func.isRequired,
clearEpisodeFiles: PropTypes.func.isRequired
};
export default withCurrentPage(

View File

@ -1,6 +1,8 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { deleteEpisodeFile } from 'Store/Actions/episodeFileActions';
import { fetchEpisodeFile, deleteEpisodeFile } from 'Store/Actions/episodeFileActions';
import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector';
import createEpisodeFileSelector from 'Store/Selectors/createEpisodeFileSelector';
import createSeriesSelector from 'Store/Selectors/createSeriesSelector';
@ -52,8 +54,50 @@ function createMapDispatchToProps(dispatch, props) {
id: props.episodeFileId,
episodeEntity: props.episodeEntity
}));
},
dispatchFetchEpisodeFile() {
dispatch(fetchEpisodeFile({
id: props.episodeFileId
}));
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeSummary);
class EpisodeSummaryConnector extends Component {
//
// Lifecycle
componentDidMount() {
const {
episodeFileId,
path,
dispatchFetchEpisodeFile
} = this.props;
if (episodeFileId && !path) {
dispatchFetchEpisodeFile({ id: episodeFileId });
}
}
//
// Render
render() {
const {
dispatchFetchEpisodeFile,
...otherProps
} = this.props;
return <EpisodeSummary {...otherProps} />;
}
}
EpisodeSummaryConnector.propTypes = {
episodeFileId: PropTypes.number,
path: PropTypes.string,
dispatchFetchEpisodeFile: PropTypes.func.isRequired
};
export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeSummaryConnector);

View File

@ -31,6 +31,7 @@ export const defaultState = {
//
// Actions Types
export const FETCH_EPISODE_FILE = 'episodeFiles/fetchEpisodeFile';
export const FETCH_EPISODE_FILES = 'episodeFiles/fetchEpisodeFiles';
export const DELETE_EPISODE_FILE = 'episodeFiles/deleteEpisodeFile';
export const DELETE_EPISODE_FILES = 'episodeFiles/deleteEpisodeFiles';
@ -40,6 +41,7 @@ export const CLEAR_EPISODE_FILES = 'episodeFiles/clearEpisodeFiles';
//
// Action Creators
export const fetchEpisodeFile = createThunk(FETCH_EPISODE_FILE);
export const fetchEpisodeFiles = createThunk(FETCH_EPISODE_FILES);
export const deleteEpisodeFile = createThunk(DELETE_EPISODE_FILE);
export const deleteEpisodeFiles = createThunk(DELETE_EPISODE_FILES);
@ -55,6 +57,7 @@ const deleteEpisodeFileHelper = createRemoveItemHandler(section, '/episodeFile')
// Action Handlers
export const actionHandlers = handleThunks({
[FETCH_EPISODE_FILE]: createFetchHandler(section, '/episodeFile'),
[FETCH_EPISODE_FILES]: createFetchHandler(section, '/episodeFile'),
[DELETE_EPISODE_FILE]: function(getState, payload, dispatch) {