From 6b81f92137a3a5c70aea293df023eae85a443f80 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 21 Jan 2025 16:11:22 +0200 Subject: [PATCH] Fixed: Import Movies page crashing on `console.error` with non-string values --- .../ImportMovie/Import/ImportMovieRow.js | 1 - .../SelectMovie/ImportMovieSelectMovie.js | 4 +-- .../src/Store/Actions/importMovieActions.js | 28 +++++++++++++++---- frontend/src/index.ts | 9 +++--- src/NzbDrone.Core/Localization/Core/en.json | 1 + 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/frontend/src/AddMovie/ImportMovie/Import/ImportMovieRow.js b/frontend/src/AddMovie/ImportMovie/Import/ImportMovieRow.js index 7858b6633..a419eb40e 100644 --- a/frontend/src/AddMovie/ImportMovie/Import/ImportMovieRow.js +++ b/frontend/src/AddMovie/ImportMovie/Import/ImportMovieRow.js @@ -81,7 +81,6 @@ ImportMovieRow.propTypes = { selectedMovie: PropTypes.object, isExistingMovie: PropTypes.bool.isRequired, items: PropTypes.arrayOf(PropTypes.object).isRequired, - queued: PropTypes.bool.isRequired, isSelected: PropTypes.bool, onSelectedChange: PropTypes.func.isRequired, onInputChange: PropTypes.func.isRequired diff --git a/frontend/src/AddMovie/ImportMovie/Import/SelectMovie/ImportMovieSelectMovie.js b/frontend/src/AddMovie/ImportMovie/Import/SelectMovie/ImportMovieSelectMovie.js index 6ec718b03..eca2eda87 100644 --- a/frontend/src/AddMovie/ImportMovie/Import/SelectMovie/ImportMovieSelectMovie.js +++ b/frontend/src/AddMovie/ImportMovie/Import/SelectMovie/ImportMovieSelectMovie.js @@ -131,7 +131,7 @@ class ImportMovieSelectMovie extends Component { id={this._buttonId} > { return ( { + const selectedMovie = queued.selectedMovie || data[0]; + dispatch(updateItem({ section, id: queued.id, @@ -158,8 +160,8 @@ export const actionHandlers = handleThunks({ isPopulated: true, error: null, items: data, - queued: false, - selectedMovie: queued.selectedMovie || data[0], + isQueued: false, + selectedMovie, updateOnly: true })); }); @@ -171,7 +173,7 @@ export const actionHandlers = handleThunks({ isFetching: false, isPopulated: false, error: xhr, - queued: false, + isQueued: false, updateOnly: true })); }); @@ -278,7 +280,23 @@ export const actionHandlers = handleThunks({ export const reducers = createHandleActions({ [CANCEL_LOOKUP_MOVIE]: function(state) { - return Object.assign({}, state, { isLookingUpMovie: false }); + queue.splice(0, queue.length); + + const items = state.items.map((item) => { + if (item.isQueued) { + return { + ...item, + isQueued: false + }; + } + + return item; + }); + + return Object.assign({}, state, { + isLookingUpMovie: false, + items + }); }, [CLEAR_IMPORT_MOVIE]: function(state) { diff --git a/frontend/src/index.ts b/frontend/src/index.ts index b9cb9ad84..3ea4ad28c 100644 --- a/frontend/src/index.ts +++ b/frontend/src/index.ts @@ -23,12 +23,13 @@ const error = console.error; function logError(...parameters: any[]) { const filter = parameters.find((parameter) => { return ( - parameter.includes( + typeof parameter === 'string' && + (parameter.includes( 'Support for defaultProps will be removed from function components in a future major release' ) || - parameter.includes( - 'findDOMNode is deprecated and will be removed in the next major release' - ) + parameter.includes( + 'findDOMNode is deprecated and will be removed in the next major release' + )) ); }); diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index d41c025b0..70cb30ee3 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -975,6 +975,7 @@ "MissingMonitoredAndConsideredAvailable": "Missing (Monitored)", "MissingNoItems": "No missing items", "MissingNotMonitored": "Missing (Unmonitored)", + "Mixed": "Mixed", "Mode": "Mode", "Monday": "Monday", "Monitor": "Monitor",