From a1e69c3c2bdee5b0c37fb662d34f751b8ffc8f3d Mon Sep 17 00:00:00 2001 From: Qstick Date: Mon, 28 Sep 2020 21:54:59 -0400 Subject: [PATCH] Lodash replacements: take 2 --- .../Details/HistoryDetailsConnector.js | 9 ++++--- .../Header/CalendarHeaderConnector.js | 24 ++++++++----------- .../Table/Cells/RelativeDateCellConnector.js | 13 +++++----- .../Details/MovieReleaseDatesConnector.js | 13 +++++----- .../Edit/EditMovieModalContentConnector.js | 15 ++++++------ .../src/Movie/MovieFileStatusConnector.js | 18 ++++++-------- frontend/src/Utilities/String/parseUrl.js | 24 +++++++++---------- 7 files changed, 51 insertions(+), 65 deletions(-) diff --git a/frontend/src/Activity/History/Details/HistoryDetailsConnector.js b/frontend/src/Activity/History/Details/HistoryDetailsConnector.js index 0848c7905..65d95e557 100644 --- a/frontend/src/Activity/History/Details/HistoryDetailsConnector.js +++ b/frontend/src/Activity/History/Details/HistoryDetailsConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; @@ -8,10 +7,10 @@ function createMapStateToProps() { return createSelector( createUISettingsSelector(), (uiSettings) => { - return _.pick(uiSettings, [ - 'shortDateFormat', - 'timeFormat' - ]); + return { + shortDateFormat: uiSettings.shortDateFormat, + timeFormat: uiSettings.timeFormat + }; } ); } diff --git a/frontend/src/Calendar/Header/CalendarHeaderConnector.js b/frontend/src/Calendar/Header/CalendarHeaderConnector.js index aec2d8e55..ba3941eab 100644 --- a/frontend/src/Calendar/Header/CalendarHeaderConnector.js +++ b/frontend/src/Calendar/Header/CalendarHeaderConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; @@ -14,19 +13,16 @@ function createMapStateToProps() { createDimensionsSelector(), createUISettingsSelector(), (calendar, dimensions, uiSettings) => { - const result = _.pick(calendar, [ - 'isFetching', - 'view', - 'time', - 'start', - 'end' - ]); - - result.isSmallScreen = dimensions.isSmallScreen; - result.collapseViewButtons = dimensions.isLargeScreen; - result.longDateFormat = uiSettings.longDateFormat; - - return result; + return { + isFetching: calendar.isFetching, + view: calendar.view, + time: calendar.time, + start: calendar.start, + end: calendar.end, + isSmallScreen: dimensions.isSmallScreen, + collapseViewButtons: dimensions.isLargeScreen, + longDateFormat: uiSettings.longDateFormat + }; } ); } diff --git a/frontend/src/Components/Table/Cells/RelativeDateCellConnector.js b/frontend/src/Components/Table/Cells/RelativeDateCellConnector.js index ed996abbe..38783e7a5 100644 --- a/frontend/src/Components/Table/Cells/RelativeDateCellConnector.js +++ b/frontend/src/Components/Table/Cells/RelativeDateCellConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; @@ -8,12 +7,12 @@ function createMapStateToProps() { return createSelector( createUISettingsSelector(), (uiSettings) => { - return _.pick(uiSettings, [ - 'showRelativeDates', - 'shortDateFormat', - 'longDateFormat', - 'timeFormat' - ]); + return { + showRelativeDates: uiSettings.showRelativeDates, + shortDateFormat: uiSettings.shortDateFormat, + longDateFormat: uiSettings.longDateFormat, + timeFormat: uiSettings.timeFormat + }; } ); } diff --git a/frontend/src/Movie/Details/MovieReleaseDatesConnector.js b/frontend/src/Movie/Details/MovieReleaseDatesConnector.js index efd6b29f7..9c60c374b 100644 --- a/frontend/src/Movie/Details/MovieReleaseDatesConnector.js +++ b/frontend/src/Movie/Details/MovieReleaseDatesConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; @@ -8,12 +7,12 @@ function createMapStateToProps() { return createSelector( createUISettingsSelector(), (uiSettings) => { - return _.pick(uiSettings, [ - 'showRelativeDates', - 'shortDateFormat', - 'longDateFormat', - 'timeFormat' - ]); + return { + showRelativeDates: uiSettings.showRelativeDates, + shortDateFormat: uiSettings.shortDateFormat, + longDateFormat: uiSettings.longDateFormat, + timeFormat: uiSettings.timeFormat + }; } ); } diff --git a/frontend/src/Movie/Edit/EditMovieModalContentConnector.js b/frontend/src/Movie/Edit/EditMovieModalContentConnector.js index 298f934ad..49f5aa11e 100644 --- a/frontend/src/Movie/Edit/EditMovieModalContentConnector.js +++ b/frontend/src/Movie/Edit/EditMovieModalContentConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; @@ -36,13 +35,13 @@ function createMapStateToProps() { pendingChanges } = moviesState; - const movieSettings = _.pick(movie, [ - 'monitored', - 'qualityProfileId', - 'minimumAvailability', - 'path', - 'tags' - ]); + const movieSettings = { + monitored: movie.monitored, + qualityProfileId: movie.qualityProfileId, + minimumAvailability: movie.minimumAvailability, + path: movie.path, + tags: movie.tags + }; const settings = selectSettings(movieSettings, pendingChanges, saveError); diff --git a/frontend/src/Movie/MovieFileStatusConnector.js b/frontend/src/Movie/MovieFileStatusConnector.js index 3afaf555f..f015f59ec 100644 --- a/frontend/src/Movie/MovieFileStatusConnector.js +++ b/frontend/src/Movie/MovieFileStatusConnector.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; @@ -10,16 +9,13 @@ function createMapStateToProps() { return createSelector( createMovieSelector(), (movie) => { - const result = _.pick(movie, [ - 'inCinemas', - 'isAvailable', - 'monitored', - 'grabbed' - ]); - - result.movieFile = movie.movieFile; - - return result; + return { + inCinemas: movie.inCinemas, + isAvailable: movie.isAvailable, + monitored: movie.monitored, + grabbed: movie.grabbed, + movieFile: movie.movieFile + }; } ); } diff --git a/frontend/src/Utilities/String/parseUrl.js b/frontend/src/Utilities/String/parseUrl.js index 93341f85f..e9408e9a0 100644 --- a/frontend/src/Utilities/String/parseUrl.js +++ b/frontend/src/Utilities/String/parseUrl.js @@ -1,4 +1,3 @@ -import _ from 'lodash'; import qs from 'qs'; // See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils @@ -10,18 +9,17 @@ export default function parseUrl(url) { // The `origin`, `password`, and `username` properties are unavailable in // Opera Presto. We synthesize `origin` if it's not present. While `password` // and `username` are ignored intentionally. - const properties = _.pick( - anchor, - 'hash', - 'host', - 'hostname', - 'href', - 'origin', - 'pathname', - 'port', - 'protocol', - 'search' - ); + const properties = { + hash: anchor.hash, + host: anchor.host, + hostname: anchor.hostname, + href: anchor.href, + origin: anchor.origin, + pathname: anchor.pathname, + port: anchor.port, + protocol: anchor.protocol, + search: anchor.search + }; properties.isAbsolute = (/^[\w:]*\/\//).test(url);