diff --git a/frontend/src/Movie/Delete/DeleteMovieModalContent.js b/frontend/src/Movie/Delete/DeleteMovieModalContent.js
index c6a4662d8..446bc4912 100644
--- a/frontend/src/Movie/Delete/DeleteMovieModalContent.js
+++ b/frontend/src/Movie/Delete/DeleteMovieModalContent.js
@@ -23,8 +23,7 @@ class DeleteMovieModalContent extends Component {
super(props, context);
this.state = {
- deleteFiles: false,
- addImportExclusion: false
+ deleteFiles: false
};
}
@@ -35,15 +34,11 @@ class DeleteMovieModalContent extends Component {
this.setState({ deleteFiles: value });
};
- onAddImportExclusionChange = ({ value }) => {
- this.setState({ addImportExclusion: value });
- };
-
onDeleteMovieConfirmed = () => {
const deleteFiles = this.state.deleteFiles;
- const addImportExclusion = this.state.addImportExclusion;
+ const addImportExclusion = this.props.deleteOptions.addImportExclusion;
- this.setState({ deleteFiles: false, addImportExclusion: false });
+ this.setState({ deleteFiles: false });
this.props.onDeletePress(deleteFiles, addImportExclusion);
};
@@ -55,12 +50,14 @@ class DeleteMovieModalContent extends Component {
title,
path,
hasFile,
+ deleteOptions,
sizeOnDisk,
- onModalClose
+ onModalClose,
+ onDeleteOptionChange
} = this.props;
const deleteFiles = this.state.deleteFiles;
- const addImportExclusion = this.state.addImportExclusion;
+ const addImportExclusion = deleteOptions.addImportExclusion;
let deleteFilesLabel = hasFile ? translate('DeleteFileLabel', [1]) : translate('DeleteFilesLabel', [0]);
let deleteFilesHelpText = translate('DeleteFilesHelpText');
@@ -99,7 +96,7 @@ class DeleteMovieModalContent extends Component {
value={addImportExclusion}
helpText={translate('AddImportExclusionHelpText')}
kind={kinds.DANGER}
- onChange={this.onAddImportExclusionChange}
+ onChange={onDeleteOptionChange}
/>
@@ -156,6 +153,8 @@ DeleteMovieModalContent.propTypes = {
path: PropTypes.string.isRequired,
hasFile: PropTypes.bool.isRequired,
sizeOnDisk: PropTypes.number.isRequired,
+ deleteOptions: PropTypes.object.isRequired,
+ onDeleteOptionChange: PropTypes.func.isRequired,
onDeletePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
diff --git a/frontend/src/Movie/Delete/DeleteMovieModalContentConnector.js b/frontend/src/Movie/Delete/DeleteMovieModalContentConnector.js
index 15b405dc7..2f995a523 100644
--- a/frontend/src/Movie/Delete/DeleteMovieModalContentConnector.js
+++ b/frontend/src/Movie/Delete/DeleteMovieModalContentConnector.js
@@ -1,64 +1,44 @@
-import { push } from 'connected-react-router';
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import { deleteMovie } from 'Store/Actions/movieActions';
+import { deleteMovie, setDeleteOption } from 'Store/Actions/movieActions';
import createMovieSelector from 'Store/Selectors/createMovieSelector';
import DeleteMovieModalContent from './DeleteMovieModalContent';
function createMapStateToProps() {
return createSelector(
+ (state) => state.movies.deleteOptions,
createMovieSelector(),
- (movie) => {
- return movie;
+ (deleteOptions, movie) => {
+ return {
+ ...movie,
+ deleteOptions
+ };
}
);
}
-const mapDispatchToProps = {
- deleteMovie,
- push
-};
+function createMapDispatchToProps(dispatch, props) {
+ return {
+ onDeleteOptionChange(option) {
+ dispatch(
+ setDeleteOption({
+ [option.name]: option.value
+ })
+ );
+ },
-class DeleteMovieModalContentConnector extends Component {
+ onDeletePress(deleteFiles, addImportExclusion) {
+ dispatch(
+ deleteMovie({
+ id: props.movieId,
+ deleteFiles,
+ addImportExclusion
+ })
+ );
- //
- // Listeners
-
- onDeletePress = (deleteFiles, addImportExclusion) => {
- this.props.deleteMovie({
- id: this.props.movieId,
- deleteFiles,
- addImportExclusion
- });
-
- this.props.onModalClose(true);
-
- if (this.props.nextMovieRelativePath) {
- this.props.push(window.Radarr.urlBase + this.props.nextMovieRelativePath);
+ props.onModalClose(true);
}
};
-
- //
- // Render
-
- render() {
- return (
-
- );
- }
}
-DeleteMovieModalContentConnector.propTypes = {
- movieId: PropTypes.number.isRequired,
- onModalClose: PropTypes.func.isRequired,
- deleteMovie: PropTypes.func.isRequired,
- push: PropTypes.func.isRequired,
- nextMovieRelativePath: PropTypes.string
-};
-
-export default connect(createMapStateToProps, mapDispatchToProps)(DeleteMovieModalContentConnector);
+export default connect(createMapStateToProps, createMapDispatchToProps)(DeleteMovieModalContent);
diff --git a/frontend/src/Movie/Index/Select/Delete/DeleteMovieModalContent.tsx b/frontend/src/Movie/Index/Select/Delete/DeleteMovieModalContent.tsx
index cfaa1bc17..f7e578701 100644
--- a/frontend/src/Movie/Index/Select/Delete/DeleteMovieModalContent.tsx
+++ b/frontend/src/Movie/Index/Select/Delete/DeleteMovieModalContent.tsx
@@ -22,14 +22,14 @@ interface DeleteMovieModalContentProps {
}
const selectDeleteOptions = createSelector(
- (state) => state.movie.deleteOptions,
+ (state) => state.movies.deleteOptions,
(deleteOptions) => deleteOptions
);
function DeleteMovieModalContent(props: DeleteMovieModalContentProps) {
const { movieIds, onModalClose } = props;
- const { addImportListExclusion } = useSelector(selectDeleteOptions);
+ const { addImportExclusion } = useSelector(selectDeleteOptions);
const allMovies = useSelector(createAllMoviesSelector());
const dispatch = useDispatch();
@@ -68,7 +68,7 @@ function DeleteMovieModalContent(props: DeleteMovieModalContentProps) {
bulkDeleteMovie({
movieIds,
deleteFiles,
- addImportListExclusion,
+ addImportExclusion,
})
);
@@ -76,7 +76,7 @@ function DeleteMovieModalContent(props: DeleteMovieModalContentProps) {
}, [
movieIds,
deleteFiles,
- addImportListExclusion,
+ addImportExclusion,
setDeleteFiles,
dispatch,
onModalClose,
@@ -93,8 +93,8 @@ function DeleteMovieModalContent(props: DeleteMovieModalContentProps) {
diff --git a/frontend/src/Movie/Index/Table/MovieIndexRow.tsx b/frontend/src/Movie/Index/Table/MovieIndexRow.tsx
index a7e4ad5d5..0651ea7d9 100644
--- a/frontend/src/Movie/Index/Table/MovieIndexRow.tsx
+++ b/frontend/src/Movie/Index/Table/MovieIndexRow.tsx
@@ -70,6 +70,9 @@ function MovieIndexRow(props: MovieIndexRowProps) {
tags = [],
tmdbId,
imdbId,
+ isAvailable,
+ grabbed,
+ movieFile,
youTubeTrailerId,
isSaving = false,
movieRuntimeFormat,
@@ -310,7 +313,10 @@ function MovieIndexRow(props: MovieIndexRowProps) {
return (
diff --git a/frontend/src/Movie/MovieFileStatusConnector.js b/frontend/src/Movie/MovieFileStatusConnector.js
index 215227e5e..755a295d1 100644
--- a/frontend/src/Movie/MovieFileStatusConnector.js
+++ b/frontend/src/Movie/MovieFileStatusConnector.js
@@ -2,21 +2,14 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import createMovieSelector from 'Store/Selectors/createMovieSelector';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import MovieFileStatus from './MovieFileStatus';
function createMapStateToProps() {
return createSelector(
- createMovieSelector(),
createUISettingsSelector(),
- (movie, uiSettings) => {
+ (uiSettings) => {
return {
- inCinemas: movie.inCinemas,
- isAvailable: movie.isAvailable,
- monitored: movie.monitored,
- grabbed: movie.grabbed,
- movieFile: movie.movieFile,
colorImpairedMode: uiSettings.enableColorImpairedMode
};
}
@@ -41,7 +34,10 @@ class MovieFileStatusConnector extends Component {
}
MovieFileStatusConnector.propTypes = {
- movieId: PropTypes.number.isRequired,
+ isAvailable: PropTypes.bool,
+ monitored: PropTypes.bool,
+ grabbed: PropTypes.bool,
+ movieFile: PropTypes.object,
queueStatus: PropTypes.string,
queueState: PropTypes.string
};