Preserving loaded directory's URI for matching on render
This commit is contained in:
@ -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
24
mopidy_iris/static/app.min.js
vendored
24
mopidy_iris/static/app.min.js
vendored
File diff suppressed because one or more lines are too long
@ -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
|
||||
|
||||
Reference in New Issue
Block a user