Experimenting with filtered selectors (search)

This commit is contained in:
James Barnsley
2020-09-22 21:04:08 +12:00
parent ae83352dfb
commit d46ff41106
5 changed files with 98 additions and 70 deletions

View File

@ -109559,38 +109559,19 @@ __webpack_require__.r(__webpack_exports__);
"use strict"; "use strict";
__webpack_require__.r(__webpack_exports__); __webpack_require__.r(__webpack_exports__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _util_arrays__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/arrays */ "./src/js/util/arrays.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); /* harmony import */ var _URILink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./URILink */ "./src/js/components/URILink.js");
/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/helpers */ "./src/js/util/helpers.js"); /* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Icon */ "./src/js/components/Icon.js");
/* harmony import */ var _util_arrays__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/arrays */ "./src/js/util/arrays.js"); /* harmony import */ var _AlbumGrid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AlbumGrid */ "./src/js/components/AlbumGrid.js");
/* harmony import */ var _URILink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./URILink */ "./src/js/components/URILink.js"); /* harmony import */ var _ArtistGrid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ArtistGrid */ "./src/js/components/ArtistGrid.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Icon */ "./src/js/components/Icon.js"); /* harmony import */ var _PlaylistGrid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PlaylistGrid */ "./src/js/components/PlaylistGrid.js");
/* harmony import */ var _AlbumGrid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AlbumGrid */ "./src/js/components/AlbumGrid.js"); /* harmony import */ var _TrackList__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./TrackList */ "./src/js/components/TrackList.js");
/* harmony import */ var _ArtistGrid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ArtistGrid */ "./src/js/components/ArtistGrid.js"); /* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../locale */ "./src/js/locale/index.js");
/* harmony import */ var _PlaylistGrid__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PlaylistGrid */ "./src/js/components/PlaylistGrid.js"); /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Button */ "./src/js/components/Button.js");
/* harmony import */ var _TrackList__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./TrackList */ "./src/js/components/TrackList.js"); /* harmony import */ var _util_selectors__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util/selectors */ "./src/js/util/selectors.js");
/* harmony import */ var _LazyLoadListener__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./LazyLoadListener */ "./src/js/components/LazyLoadListener.js");
/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../locale */ "./src/js/locale/index.js");
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Button */ "./src/js/components/Button.js");
/* harmony import */ var _util_selectors__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../util/selectors */ "./src/js/util/selectors.js");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
@ -109612,6 +109593,7 @@ var SearchResults = function SearchResults(_ref) {
uri_schemes_priority = _ref.uri_schemes_priority, uri_schemes_priority = _ref.uri_schemes_priority,
all = _ref.all, all = _ref.all,
rawResults = _ref.results; rawResults = _ref.results;
console.log('rendering', type, query);
var encodedTerm = encodeURIComponent(query.term); var encodedTerm = encodeURIComponent(query.term);
var results = rawResults; var results = rawResults;
if (!results) return null; if (!results) return null;
@ -109632,7 +109614,7 @@ var SearchResults = function SearchResults(_ref) {
break; break;
} }
results = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_4__["sortItems"])(results, type === 'tracks' && sort === 'followers' ? 'popularity' : sort, sort_reverse, sort_map); results = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_2__["sortItems"])(results, type === 'tracks' && sort === 'followers' ? 'popularity' : sort, sort_reverse, sort_map);
var resultsCount = results.length; var resultsCount = results.length;
if (all && type !== 'tracks' && results.length > 5) { if (all && type !== 'tracks' && results.length > 5) {
@ -109640,74 +109622,74 @@ var SearchResults = function SearchResults(_ref) {
} }
if (results.length <= 0) return null; if (results.length <= 0) return null;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
"data-qa-node": "div", "data-qa-node": "div",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("h4", { }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h4", {
"data-qa-node": "h4", "data-qa-node": "h4",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, !all && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", { }, !all && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
"data-qa-node": "span", "data-qa-node": "span",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_URILink__WEBPACK_IMPORTED_MODULE_5__["default"], { }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_URILink__WEBPACK_IMPORTED_MODULE_3__["default"], {
uri: "iris:search:all:".concat(encodedTerm), uri: "iris:search:all:".concat(encodedTerm),
"data-qa-node": "URILink", "data-qa-node": "URILink",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_12__["I18n"], { }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "search.title", path: "search.title",
"data-qa-node": "I18n", "data-qa-node": "I18n",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
})), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_6__["default"], { })), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Icon__WEBPACK_IMPORTED_MODULE_4__["default"], {
type: "fontawesome", type: "fontawesome",
name: "angle-right", name: "angle-right",
"data-qa-node": "Icon", "data-qa-node": "Icon",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_12__["I18n"], { }), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "search.".concat(type, ".title"), path: "search.".concat(type, ".title"),
"data-qa-node": "I18n", "data-qa-node": "I18n",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
})), all && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_URILink__WEBPACK_IMPORTED_MODULE_5__["default"], { })), all && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_URILink__WEBPACK_IMPORTED_MODULE_3__["default"], {
uri: "iris:search:".concat(type, ":").concat(encodedTerm), uri: "iris:search:".concat(type, ":").concat(encodedTerm),
"data-qa-node": "URILink", "data-qa-node": "URILink",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_12__["I18n"], { }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "search.".concat(type, ".title"), path: "search.".concat(type, ".title"),
"data-qa-node": "I18n", "data-qa-node": "I18n",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("section", { }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", {
className: "grid-wrapper", className: "grid-wrapper",
"data-qa-node": "section", "data-qa-node": "section",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, type === 'artists' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_ArtistGrid__WEBPACK_IMPORTED_MODULE_8__["default"], { }, type === 'artists' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ArtistGrid__WEBPACK_IMPORTED_MODULE_6__["default"], {
artists: results, artists: results,
show_source_icon: true, show_source_icon: true,
mini: all, mini: all,
"data-qa-node": "ArtistGrid", "data-qa-node": "ArtistGrid",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}), type === 'albums' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_AlbumGrid__WEBPACK_IMPORTED_MODULE_7__["default"], { }), type === 'albums' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_AlbumGrid__WEBPACK_IMPORTED_MODULE_5__["default"], {
albums: results, albums: results,
show_source_icon: true, show_source_icon: true,
mini: all, mini: all,
"data-qa-node": "AlbumGrid", "data-qa-node": "AlbumGrid",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}), type === 'playlists' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_PlaylistGrid__WEBPACK_IMPORTED_MODULE_9__["default"], { }), type === 'playlists' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PlaylistGrid__WEBPACK_IMPORTED_MODULE_7__["default"], {
playlists: results, playlists: results,
show_source_icon: true, show_source_icon: true,
mini: all, mini: all,
"data-qa-node": "PlaylistGrid", "data-qa-node": "PlaylistGrid",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}), type === 'tracks' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_TrackList__WEBPACK_IMPORTED_MODULE_10__["default"], { }), type === 'tracks' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_TrackList__WEBPACK_IMPORTED_MODULE_8__["default"], {
tracks: results, tracks: results,
uri: "iris:search:".concat(query.type, ":").concat(encodedTerm), uri: "iris:search:".concat(query.type, ":").concat(encodedTerm),
show_source_icon: true, show_source_icon: true,
"data-qa-node": "TrackList", "data-qa-node": "TrackList",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}), resultsCount > results.length && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Button__WEBPACK_IMPORTED_MODULE_13__["default"], { }), resultsCount > results.length && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Button__WEBPACK_IMPORTED_MODULE_10__["default"], {
uri: "iris:search:".concat(type, ":").concat(encodedTerm), uri: "iris:search:".concat(type, ":").concat(encodedTerm),
debug: true, debug: true,
"data-qa-node": "Button", "data-qa-node": "Button",
"data-qa-file": "SearchResults" "data-qa-file": "SearchResults"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_12__["I18n"], { }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "search.".concat(type, ".more"), path: "search.".concat(type, ".more"),
count: resultsCount, count: resultsCount,
"data-qa-node": "I18n", "data-qa-node": "I18n",
@ -109716,11 +109698,12 @@ var SearchResults = function SearchResults(_ref) {
}; };
var mapStateToProps = function mapStateToProps(state, ownProps) { var mapStateToProps = function mapStateToProps(state, ownProps) {
var searchResultsSelector = Object(_util_selectors__WEBPACK_IMPORTED_MODULE_11__["makeSearchResultsSelector"])();
return { return {
uri_schemes_priority: state.ui.uri_schemes_priority || [], uri_schemes_priority: state.ui.uri_schemes_priority || [],
results: [].concat(_toConsumableArray(Object(_util_selectors__WEBPACK_IMPORTED_MODULE_14__["getSearchResults"])(state, 'mopidy', ownProps.type, ownProps.query)), _toConsumableArray(Object(_util_selectors__WEBPACK_IMPORTED_MODULE_14__["getSearchResults"])(state, 'spotify', ownProps.type, ownProps.query))), results: searchResultsSelector(state, ownProps),
sort: state.ui.search_results_sort || 'followers', sort: state.ui.search_results_sort,
sort_reverse: !!state.ui.search_results_sort_reverse sort_reverse: state.ui.search_results_sort_reverse
}; };
}; };
@ -109728,7 +109711,7 @@ var mapDispatchToProps = function mapDispatchToProps() {
return {}; return {};
}; };
/* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_2__["connect"])(mapStateToProps, mapDispatchToProps)(SearchResults)); /* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])(mapStateToProps, mapDispatchToProps)(SearchResults));
/***/ }), /***/ }),
@ -128779,7 +128762,7 @@ var encodeMopidyUri = function encodeMopidyUri(uri) {
/*!**********************************!*\ /*!**********************************!*\
!*** ./src/js/util/selectors.js ***! !*** ./src/js/util/selectors.js ***!
\**********************************/ \**********************************/
/*! exports provided: makeItemSelector, makeLibrarySelector, makeLoadingSelector, queueHistorySelector */ /*! exports provided: makeItemSelector, makeLibrarySelector, makeLoadingSelector, makeSearchResultsSelector, queueHistorySelector */
/***/ (function(module, __webpack_exports__, __webpack_require__) { /***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict"; "use strict";
@ -128787,10 +128770,23 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeItemSelector", function() { return makeItemSelector; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeItemSelector", function() { return makeItemSelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeLibrarySelector", function() { return makeLibrarySelector; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeLibrarySelector", function() { return makeLibrarySelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeLoadingSelector", function() { return makeLoadingSelector; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeLoadingSelector", function() { return makeLoadingSelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeSearchResultsSelector", function() { return makeSearchResultsSelector; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queueHistorySelector", function() { return queueHistorySelector; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queueHistorySelector", function() { return queueHistorySelector; });
/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! reselect */ "./node_modules/reselect/es/index.js"); /* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! reselect */ "./node_modules/reselect/es/index.js");
/* harmony import */ var _arrays__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrays */ "./src/js/util/arrays.js"); /* harmony import */ var _arrays__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrays */ "./src/js/util/arrays.js");
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/js/util/helpers.js"); /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/js/util/helpers.js");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@ -128847,6 +128843,21 @@ var makeLibrarySelector = function makeLibrarySelector(uri) {
}); });
}; };
var getMopidySearchResults = function getMopidySearchResults(state, props) {
return state.mopidy.search_results && state.mopidy.search_results[props.type];
};
var getSpotifySearchResults = function getSpotifySearchResults(state, props) {
return state.spotify.search_results && state.spotify.search_results[props.type];
};
var makeSearchResultsSelector = function makeSearchResultsSelector() {
return Object(reselect__WEBPACK_IMPORTED_MODULE_0__["createSelector"])([getMopidySearchResults, getSpotifySearchResults, getItems], function (mopidySearchResults, spotifySearchResults, items) {
var uris = [].concat(_toConsumableArray(mopidySearchResults || []), _toConsumableArray(spotifySearchResults || []));
return Object(_arrays__WEBPACK_IMPORTED_MODULE_1__["indexToArray"])(items, uris);
});
};
/***/ }), /***/ }),

File diff suppressed because one or more lines are too long

View File

@ -106,7 +106,7 @@
// Release details // Release details
// These are automatically injected to built HTML // These are automatically injected to built HTML
var build = "1600680434"; var build = "1600759874";
var version = "3.52.4"; var version = "3.52.4";
// Construct the script tag // Construct the script tag

View File

@ -1,18 +1,15 @@
import { pick } from 'lodash';
import React from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { titleCase, getIndexedRecords } from '../util/helpers'; import { sortItems } from '../util/arrays';
import { sortItems, indexToArray } from '../util/arrays';
import URILink from './URILink'; import URILink from './URILink';
import Icon from './Icon'; import Icon from './Icon';
import AlbumGrid from './AlbumGrid'; import AlbumGrid from './AlbumGrid';
import ArtistGrid from './ArtistGrid'; import ArtistGrid from './ArtistGrid';
import PlaylistGrid from './PlaylistGrid'; import PlaylistGrid from './PlaylistGrid';
import TrackList from './TrackList'; import TrackList from './TrackList';
import LazyLoadListener from './LazyLoadListener';
import { I18n } from '../locale'; import { I18n } from '../locale';
import Button from './Button'; import Button from './Button';
import { getSearchResults } from '../util/selectors'; import { makeSearchResultsSelector } from '../util/selectors';
const SearchResults = ({ const SearchResults = ({
type, type,
@ -23,6 +20,7 @@ const SearchResults = ({
all, all,
results: rawResults, results: rawResults,
}) => { }) => {
console.log('rendering', type, query);
const encodedTerm = encodeURIComponent(query.term); const encodedTerm = encodeURIComponent(query.term);
let results = rawResults; let results = rawResults;
@ -93,15 +91,16 @@ const SearchResults = ({
); );
}; };
const mapStateToProps = (state, ownProps) => ({ const mapStateToProps = (state, ownProps) => {
uri_schemes_priority: state.ui.uri_schemes_priority || [], const searchResultsSelector = makeSearchResultsSelector();
results: [
...getSearchResults(state, 'mopidy', ownProps.type, ownProps.query), return {
...getSearchResults(state, 'spotify', ownProps.type, ownProps.query), uri_schemes_priority: state.ui.uri_schemes_priority || [],
], results: searchResultsSelector(state, ownProps),
sort: state.ui.search_results_sort || 'followers', sort: state.ui.search_results_sort,
sort_reverse: !!state.ui.search_results_sort_reverse, sort_reverse: state.ui.search_results_sort_reverse,
}); };
};
const mapDispatchToProps = () => ({}); const mapDispatchToProps = () => ({});

View File

@ -40,9 +40,27 @@ const makeLibrarySelector = (uri) => createSelector(
}, },
); );
const getMopidySearchResults = (state, props) => (
state.mopidy.search_results && state.mopidy.search_results[props.type]
);
const getSpotifySearchResults = (state, props) => (
state.spotify.search_results && state.spotify.search_results[props.type]
);
const makeSearchResultsSelector = () => createSelector(
[getMopidySearchResults, getSpotifySearchResults, getItems],
(mopidySearchResults, spotifySearchResults, items) => {
const uris = [
...mopidySearchResults || [],
...spotifySearchResults || [],
];
return indexToArray(items, uris);
},
);
export { export {
makeItemSelector, makeItemSelector,
makeLibrarySelector, makeLibrarySelector,
makeLoadingSelector, makeLoadingSelector,
makeSearchResultsSelector,
queueHistorySelector, queueHistorySelector,
}; };