Preserving loaded directory's URI for matching on render

This commit is contained in:
James Barnsley
2021-02-01 20:41:49 +13:00
parent 225c1e1559
commit c2b1fdf6ba
8 changed files with 224 additions and 172 deletions

View File

@ -153988,28 +153988,29 @@ var MopidyMiddleware = function () {
var request = function request(store, call) {
var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return new Promise(function (resolve, reject) {
var loader_key = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["generateGuid"])();
store.dispatch(uiActions.startLoading(loader_key, "mopidy_".concat(call)));
var loaderId = Object(_util_helpers__WEBPACK_IMPORTED_MODULE_5__["generateGuid"])();
var loaderKey = "mopidy_".concat(call);
store.dispatch(uiActions.startLoading(loaderId, loaderKey));
var doRequest = function doRequest() {
var controller = getController(call, socket);
if (controller) {
var timeout = setTimeout(function () {
store.dispatch(uiActions.stopLoading(loader_key));
store.dispatch(uiActions.stopLoading(loaderId));
reject(new Error('Request timed out'));
}, 30000);
controller(value).then(function (response) {
clearTimeout(timeout);
store.dispatch(uiActions.stopLoading(loader_key));
store.dispatch(uiActions.stopLoading(loaderId));
resolve(response);
}, function (error) {
clearTimeout(timeout);
store.dispatch(uiActions.stopLoading(loader_key));
store.dispatch(uiActions.stopLoading(loaderId));
reject(error);
});
} else {
store.dispatch(uiActions.stopLoading(loader_key));
store.dispatch(uiActions.stopLoading(loaderId));
console.warn('Mopidy request aborted. Either Mopidy is not connected or the request method is invalid. Check the request and your server settings.', {
call: call,
value: value,
@ -155303,10 +155304,11 @@ var MopidyMiddleware = function () {
}
case 'MOPIDY_GET_DIRECTORY':
store.dispatch({
type: 'MOPIDY_DIRECTORY_FLUSH'
});
var uri = action.uri ? decodeURIComponent(action.uri) : null;
store.dispatch({
type: 'MOPIDY_DIRECTORY_LOADING',
uri: uri
});
if (uri) {
request(store, 'library.lookup', {
@ -155316,16 +155318,11 @@ var MopidyMiddleware = function () {
results = _response$uri === void 0 ? [] : _response$uri;
if (!results.length) return;
var result = results[0];
if (result.album) {
result = _objectSpread(_objectSpread({}, result), {}, {
name: result.album.name
});
}
store.dispatch({
type: 'MOPIDY_DIRECTORY_LOADED',
directory: _objectSpread({}, Object(_util_format__WEBPACK_IMPORTED_MODULE_6__["formatSimpleObject"])(result))
directory: {
name: result.album ? result.album.name : result.name
}
});
});
}
@ -155803,9 +155800,11 @@ function reducer() {
* This also facilitates all backend-only music providers (SoundCloud, Dirble, etc)
* */
case 'MOPIDY_DIRECTORY_FLUSH':
case 'MOPIDY_DIRECTORY_LOADING':
return _objectSpread(_objectSpread({}, mopidy), {}, {
directory: null
directory: {
uri: action.uri
}
});
case 'MOPIDY_DIRECTORY_LOADED':
@ -173264,12 +173263,14 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js");
/* harmony import */ var _components_Header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Header */ "./src/js/components/Header.js");
/* harmony import */ var _components_GridItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/GridItem */ "./src/js/components/GridItem.js");
/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Icon */ "./src/js/components/Icon.js");
/* harmony import */ var _components_ErrorBoundary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/ErrorBoundary */ "./src/js/components/ErrorBoundary.js");
/* harmony import */ var _services_ui_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../services/ui/actions */ "./src/js/services/ui/actions.js");
/* harmony import */ var _services_mopidy_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../services/mopidy/actions */ "./src/js/services/mopidy/actions.js");
/* harmony import */ var _util_format__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util/format */ "./src/js/util/format.js");
/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../locale */ "./src/js/locale/index.js");
/* harmony import */ var _components_Loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Loader */ "./src/js/components/Loader.js");
/* harmony import */ var _components_Icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Icon */ "./src/js/components/Icon.js");
/* harmony import */ var _components_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/ErrorBoundary */ "./src/js/components/ErrorBoundary.js");
/* harmony import */ var _services_ui_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../services/ui/actions */ "./src/js/services/ui/actions.js");
/* harmony import */ var _services_mopidy_actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../services/mopidy/actions */ "./src/js/services/mopidy/actions.js");
/* harmony import */ var _util_format__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util/format */ "./src/js/util/format.js");
/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../locale */ "./src/js/locale/index.js");
/* harmony import */ var _util_selectors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../util/selectors */ "./src/js/util/selectors.js");
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@ -173312,6 +173313,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
_inherits(LibraryBrowse, _React$Component);
@ -173333,24 +173336,29 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
getDirectory(null);
});
return _this;
}
_defineProperty(_assertThisInitialized(_this), "render", function () {
var _this$props = _this.props,
loading = _this$props.loading,
directory = _this$props.directory,
mopidyActions = _this$props.mopidyActions;
_createClass(LibraryBrowse, [{
key: "componentDidMount",
value: function componentDidMount() {
this.loadDirectory();
this.props.uiActions.setWindowTitle(Object(_locale__WEBPACK_IMPORTED_MODULE_10__["i18n"])('library.browse.title'));
}
}, {
key: "render",
value: function render() {
var _this2 = this;
if (!directory) {
if (loading) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Loader__WEBPACK_IMPORTED_MODULE_5__["default"], {
body: true,
loading: true,
"data-qa-node": "Loader",
"data-qa-file": "LibraryBrowse"
});
}
return null;
}
var grid_items = [];
if (this.props.directory) {
var _iterator = _createForOfIteratorHelper(this.props.directory.subdirectories),
if (directory.subdirectories) {
var _iterator = _createForOfIteratorHelper(directory.subdirectories),
_step;
try {
@ -173417,8 +173425,8 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
grid_items.push({
name: subdirectory.name,
link: "/library/browse/".concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_9__["encodeUri"])(subdirectory.uri)),
icons: Object(_util_format__WEBPACK_IMPORTED_MODULE_9__["formatImages"])(subdirectory.icons)
link: "/library/browse/".concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_10__["encodeUri"])(subdirectory.uri)),
icons: Object(_util_format__WEBPACK_IMPORTED_MODULE_10__["formatImages"])(subdirectory.icons)
});
}
} catch (err) {
@ -173435,12 +173443,12 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Header__WEBPACK_IMPORTED_MODULE_3__["default"], {
"data-qa-node": "Header",
"data-qa-file": "LibraryBrowse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Icon__WEBPACK_IMPORTED_MODULE_5__["default"], {
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Icon__WEBPACK_IMPORTED_MODULE_6__["default"], {
name: "folder",
type: "material",
"data-qa-node": "Icon",
"data-qa-file": "LibraryBrowse"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_10__["I18n"], {
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_11__["I18n"], {
path: "library.browse.title",
"data-qa-node": "I18n",
"data-qa-file": "LibraryBrowse"
@ -173452,7 +173460,7 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
className: "grid grid--tiles",
"data-qa-node": "div",
"data-qa-file": "LibraryBrowse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ErrorBoundary__WEBPACK_IMPORTED_MODULE_6__["default"], {
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__["default"], {
"data-qa-node": "ErrorBoundary",
"data-qa-file": "LibraryBrowse"
}, grid_items.map(function (item, index) {
@ -173460,12 +173468,22 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
item: item,
key: index,
link: item.link,
mopidyActions: _this2.props.mopidyActions,
mopidyActions: mopidyActions,
type: "browse",
"data-qa-node": "GridItem",
"data-qa-file": "LibraryBrowse"
});
})))));
});
return _this;
}
_createClass(LibraryBrowse, [{
key: "componentDidMount",
value: function componentDidMount() {
this.loadDirectory();
this.props.uiActions.setWindowTitle(Object(_locale__WEBPACK_IMPORTED_MODULE_11__["i18n"])('library.browse.title'));
}
}]);
@ -173473,17 +173491,23 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
var mapStateToProps = function mapStateToProps(state) {
var _state$mopidy$directo = state.mopidy.directory,
_directory = _state$mopidy$directo === void 0 ? {} : _state$mopidy$directo,
view = state.ui.library_directory_view;
var directory = _directory && _directory.uri === null ? _directory : null;
var loadingSelector = Object(_util_selectors__WEBPACK_IMPORTED_MODULE_12__["makeLoadingSelector"])(['(.*)mopidy_library.browse(.*)']);
return {
load_queue: state.ui.load_queue,
directory: state.mopidy.directory,
view: state.ui.library_directory_view
loading: loadingSelector(state),
directory: directory,
view: view
};
};
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
uiActions: Object(redux__WEBPACK_IMPORTED_MODULE_2__["bindActionCreators"])(_services_ui_actions__WEBPACK_IMPORTED_MODULE_7__, dispatch),
mopidyActions: Object(redux__WEBPACK_IMPORTED_MODULE_2__["bindActionCreators"])(_services_mopidy_actions__WEBPACK_IMPORTED_MODULE_8__, dispatch)
uiActions: Object(redux__WEBPACK_IMPORTED_MODULE_2__["bindActionCreators"])(_services_ui_actions__WEBPACK_IMPORTED_MODULE_8__, dispatch),
mopidyActions: Object(redux__WEBPACK_IMPORTED_MODULE_2__["bindActionCreators"])(_services_mopidy_actions__WEBPACK_IMPORTED_MODULE_9__, dispatch)
};
};
@ -173518,11 +173542,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _services_ui_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../services/ui/actions */ "./src/js/services/ui/actions.js");
/* harmony import */ var _services_mopidy_actions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../services/mopidy/actions */ "./src/js/services/mopidy/actions.js");
/* harmony import */ var _services_spotify_actions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../services/spotify/actions */ "./src/js/services/spotify/actions.js");
/* harmony import */ var _util_helpers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../util/helpers */ "./src/js/util/helpers.js");
/* harmony import */ var _util_arrays__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../util/arrays */ "./src/js/util/arrays.js");
/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../locale */ "./src/js/locale/index.js");
/* harmony import */ var _components_Button__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../components/Button */ "./src/js/components/Button.js");
/* harmony import */ var _util_format__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../util/format */ "./src/js/util/format.js");
/* harmony import */ var _util_arrays__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../util/arrays */ "./src/js/util/arrays.js");
/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../locale */ "./src/js/locale/index.js");
/* harmony import */ var _components_Button__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../components/Button */ "./src/js/components/Button.js");
/* harmony import */ var _util_format__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../util/format */ "./src/js/util/format.js");
/* harmony import */ var _util_selectors__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../util/selectors */ "./src/js/util/selectors.js");
/* harmony import */ var _components_ErrorMessage__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../components/ErrorMessage */ "./src/js/components/ErrorMessage.js");
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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; }
@ -173572,6 +173597,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
@ -173630,7 +173656,7 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
_this$props3$director = _this$props3$director === void 0 ? {} : _this$props3$director;
var tracks = _this$props3$director.tracks;
if (!tracks || !tracks.length) return;
playURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["arrayOf"])('uri', Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["sortItems"])(tracks, 'name')), "iris:browse:".concat(uri));
playURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["arrayOf"])('uri', Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["sortItems"])(tracks, 'name')), "iris:browse:".concat(uri));
hideContextMenu();
});
@ -173688,7 +173714,7 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_GridItem__WEBPACK_IMPORTED_MODULE_7__["default"], {
key: subdirectory.uri,
type: "directory",
link: "/library/browse/".concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_21__["encodeUri"])(subdirectory.uri)),
link: "/library/browse/".concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_20__["encodeUri"])(subdirectory.uri)),
item: subdirectory,
nocontext: true,
"data-qa-node": "GridItem",
@ -173701,32 +173727,39 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
var _this$props4 = _this.props,
uri = _this$props4.uri,
directory = _this$props4.directory,
load_queue = _this$props4.load_queue,
uiActions = _this$props4.uiActions,
loading = _this$props4.loading,
view = _this$props4.view;
var _this$state2 = _this.state,
filter = _this$state2.filter,
per_page = _this$state2.per_page,
limit = _this$state2.limit;
var title = Object(_locale__WEBPACK_IMPORTED_MODULE_19__["i18n"])('library.browse_directory.title');
var title = Object(_locale__WEBPACK_IMPORTED_MODULE_18__["i18n"])('library.browse_directory.title');
if (!directory || Object(_util_helpers__WEBPACK_IMPORTED_MODULE_17__["isLoading"])(load_queue, ['mopidy_browse'])) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "view library-local-view",
"data-qa-node": "div",
if (!directory || !directory.subdirectories && !directory.tracks) {
if (loading) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Loader__WEBPACK_IMPORTED_MODULE_3__["default"], {
body: true,
loading: true,
"data-qa-node": "Loader",
"data-qa-file": "LibraryBrowseDirectory"
});
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ErrorMessage__WEBPACK_IMPORTED_MODULE_22__["default"], {
type: "not-found",
title: "Not found",
"data-qa-node": "ErrorMessage",
"data-qa-file": "LibraryBrowseDirectory"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Header__WEBPACK_IMPORTED_MODULE_4__["default"], {
icon: "music",
title: title,
uiActions: uiActions,
"data-qa-node": "Header",
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", {
"data-qa-node": "p",
"data-qa-file": "LibraryBrowseDirectory"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Loader__WEBPACK_IMPORTED_MODULE_3__["default"], {
body: true,
loading: true,
"data-qa-node": "Loader",
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_18__["I18n"], {
path: "errors.uri_not_found",
uri: uri,
"data-qa-node": "I18n",
"data-qa-file": "LibraryBrowseDirectory"
}));
})));
}
if (directory.name) {
@ -173742,10 +173775,10 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
;
var subdirectories = directory.subdirectories && directory.subdirectories.length > 0 ? directory.subdirectories : null;
subdirectories = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["sortItems"])(subdirectories, 'name');
subdirectories = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["sortItems"])(subdirectories, 'name');
if (filter && filter !== '') {
subdirectories = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["applyFilter"])('name', filter, subdirectories);
subdirectories = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["applyFilter"])('name', filter, subdirectories);
}
var total_items = (directory.tracks ? directory.tracks.length : 0) + (subdirectories ? subdirectories.length : 0);
@ -173756,10 +173789,10 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
if (limit_remaining > 0 && directory.tracks && directory.tracks.length) {
all_tracks = directory.tracks;
all_tracks = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["sortItems"])(all_tracks, 'name');
all_tracks = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["sortItems"])(all_tracks, 'name');
if (filter && filter !== '') {
tracks = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_18__["applyFilter"])('name', filter, tracks);
tracks = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_17__["applyFilter"])('name', filter, tracks);
}
tracks = all_tracks.slice(0, limit_remaining);
@ -173767,10 +173800,10 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
var view_options = [{
value: 'thumbnails',
label: Object(_locale__WEBPACK_IMPORTED_MODULE_19__["i18n"])('fields.filters.thumbnails')
label: Object(_locale__WEBPACK_IMPORTED_MODULE_18__["i18n"])('fields.filters.thumbnails')
}, {
value: 'list',
label: Object(_locale__WEBPACK_IMPORTED_MODULE_19__["i18n"])('fields.filters.list')
label: Object(_locale__WEBPACK_IMPORTED_MODULE_18__["i18n"])('fields.filters.list')
}];
var options = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Fields_FilterField__WEBPACK_IMPORTED_MODULE_9__["default"], {
initialValue: filter,
@ -173799,7 +173832,7 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
},
"data-qa-node": "DropdownField",
"data-qa-file": "LibraryBrowseDirectory"
}), tracks && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Button__WEBPACK_IMPORTED_MODULE_20__["default"], {
}), tracks && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Button__WEBPACK_IMPORTED_MODULE_19__["default"], {
onClick: _this.playAll,
noHover: true,
discrete: true,
@ -173813,11 +173846,11 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
name: "play_circle_filled",
"data-qa-node": "Icon",
"data-qa-file": "LibraryBrowseDirectory"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_19__["I18n"], {
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_18__["I18n"], {
path: "actions.play_all",
"data-qa-node": "I18n",
"data-qa-file": "LibraryBrowseDirectory"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Button__WEBPACK_IMPORTED_MODULE_20__["default"], {
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Button__WEBPACK_IMPORTED_MODULE_19__["default"], {
onClick: function onClick(e) {
uiActions.hideContextMenu();
@ -173834,7 +173867,7 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
name: "keyboard_backspace",
"data-qa-node": "Icon",
"data-qa-file": "LibraryBrowseDirectory"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_19__["I18n"], {
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_18__["I18n"], {
path: "actions.back",
"data-qa-node": "I18n",
"data-qa-file": "LibraryBrowseDirectory"
@ -173895,7 +173928,7 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
});
}
this.props.uiActions.setWindowTitle(Object(_locale__WEBPACK_IMPORTED_MODULE_19__["i18n"])('library.browse_directory.title'));
this.props.uiActions.setWindowTitle(Object(_locale__WEBPACK_IMPORTED_MODULE_18__["i18n"])('library.browse_directory.title'));
this.loadDirectory();
}
}]);
@ -173904,29 +173937,20 @@ var LibraryBrowseDirectory = /*#__PURE__*/function (_React$Component) {
}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);
var mapStateToProps = function mapStateToProps(state, ownProps) {
// Decode the URI, and then re-encode selected characters
// This is needed as Mopidy encodes *some* characters in URIs (but not other characters)
// We need to retain ":" because this a reserved URI separator
var uri = decodeURIComponent(ownProps.match.params.uri);
uri = uri.replace(/\s/g, '%20'); // space
var _state$mopidy$directo = state.mopidy.directory,
_directory = _state$mopidy$directo === void 0 ? {} : _state$mopidy$directo,
view = state.ui.library_directory_view;
uri = uri.replace(/&/g, '%26'); // &
uri = uri.replace(/\[/g, '%5B'); // [
uri = uri.replace(/\]/g, '%5D'); // ]
uri = uri.replace(/\(/g, '%28'); // (
uri = uri.replace(/\)/g, '%29'); // )
uri = uri.replace(/\#/g, '%23'); // #
var uri = Object(_util_format__WEBPACK_IMPORTED_MODULE_20__["decodeUri"])(ownProps.match.params.uri);
var uriMatcher = [uri, decodeURIComponent(uri)]; // Lenient matching due to encoding diffs
var directory = _directory && uriMatcher.includes(_directory.uri) ? _directory : undefined;
var loadingSelector = Object(_util_selectors__WEBPACK_IMPORTED_MODULE_21__["makeLoadingSelector"])(['mopidy_library.(browse|lookup)']);
return {
uri: uri,
load_queue: state.ui.load_queue,
directory: state.mopidy.directory,
view: state.ui.library_directory_view
loading: loadingSelector(state),
directory: directory,
view: view
};
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

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