loadUris to handle type-agnostic URIs
This commit is contained in:
@ -114741,7 +114741,7 @@ module.exports = JSON.parse("{\"name\":\"Svenska\",\"errors\":{\"uri_not_found\"
|
||||
/*!*****************************************!*\
|
||||
!*** ./src/js/services/core/actions.js ***!
|
||||
\*****************************************/
|
||||
/*! exports provided: handleException, debugResponse, set, resetState, clearCurrentTrack, clearStorage, restoreItemsFromColdStore, restoreLibraryFromColdStore, updateColdStore, startSearch, searchResultsLoaded, loadItems, loadItem, loadTrack, loadAlbum, loadArtist, loadPlaylist, loadUser, loadUserPlaylists, loadLibrary, addToLibrary, removeFromLibrary, libraryLoaded, unloadLibrary, itemsLoaded, itemLoaded, tracksLoaded, trackLoaded, artistsLoaded, albumsLoaded, albumLoaded, playlistsLoaded, playlistLoaded, usersLoaded, userLoaded, userPlaylistsLoaded, loadedMore, removeItem, streamTitleLoaded, streamTitleChanged, viewDataLoaded, reorderPlaylistTracks, savePlaylist, createPlaylist, deletePlaylist, removeTracksFromPlaylist, addTracksToPlaylist, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, addPinned, removePinned, updatePinned, updatePinnedUri */
|
||||
/*! exports provided: handleException, debugResponse, set, resetState, clearCurrentTrack, clearStorage, restoreItemsFromColdStore, restoreLibraryFromColdStore, updateColdStore, startSearch, searchResultsLoaded, loadUris, loadUri, loadItems, loadItem, loadTrack, loadAlbum, loadArtist, loadPlaylist, loadUser, loadUserPlaylists, loadLibrary, addToLibrary, removeFromLibrary, libraryLoaded, unloadLibrary, itemsLoaded, itemLoaded, tracksLoaded, trackLoaded, artistsLoaded, albumsLoaded, albumLoaded, playlistsLoaded, playlistLoaded, usersLoaded, userLoaded, userPlaylistsLoaded, loadedMore, removeItem, streamTitleLoaded, streamTitleChanged, viewDataLoaded, reorderPlaylistTracks, savePlaylist, createPlaylist, deletePlaylist, removeTracksFromPlaylist, addTracksToPlaylist, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, addPinned, removePinned, updatePinned, updatePinnedUri */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
@ -114757,6 +114757,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateColdStore", function() { return updateColdStore; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startSearch", function() { return startSearch; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "searchResultsLoaded", function() { return searchResultsLoaded; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadUris", function() { return loadUris; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadUri", function() { return loadUri; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItems", function() { return loadItems; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadItem", function() { return loadItem; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTrack", function() { return loadTrack; });
|
||||
@ -114915,6 +114917,19 @@ function searchResultsLoaded(query, resultType, results) {
|
||||
* relevant service to load the record - all from one neat package.
|
||||
* */
|
||||
|
||||
function loadUris() {
|
||||
var uris = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
return {
|
||||
type: 'LOAD_URIS',
|
||||
uris: uris,
|
||||
options: options
|
||||
};
|
||||
}
|
||||
function loadUri(uri) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
return loadUris([uri], options);
|
||||
}
|
||||
function loadItems(itemType) {
|
||||
var uris = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
||||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||
@ -115740,8 +115755,6 @@ var CoreMiddleware = function () {
|
||||
|
||||
case 'LOAD_ITEMS':
|
||||
{
|
||||
console.log(action);
|
||||
|
||||
var _action$uris = action.uris,
|
||||
_uris = _action$uris === void 0 ? [] : _action$uris,
|
||||
options = action.options,
|
||||
@ -133916,13 +133929,11 @@ var Queue = /*#__PURE__*/function (_React$Component) {
|
||||
_defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (_ref2) {
|
||||
var prev_added_from_uri = _ref2.added_from_uri;
|
||||
var _this$props = _this.props,
|
||||
loadItem = _this$props.coreActions.loadItem,
|
||||
loadUri = _this$props.coreActions.loadUri,
|
||||
added_from_uri = _this$props.added_from_uri;
|
||||
|
||||
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
||||
loadItem(added_from_uri, {
|
||||
full: false
|
||||
});
|
||||
loadUri(added_from_uri);
|
||||
}
|
||||
});
|
||||
|
||||
@ -136656,10 +136667,10 @@ var UriRedirect = /*#__PURE__*/function (_React$Component) {
|
||||
var _this$props = _this.props,
|
||||
uri = _this$props.uri,
|
||||
item = _this$props.item,
|
||||
loadItem = _this$props.coreActions.loadItem;
|
||||
loadUri = _this$props.coreActions.loadUri;
|
||||
|
||||
if (prevUri !== uri) {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
|
||||
_this.setWindowTitle();
|
||||
}
|
||||
@ -136702,12 +136713,12 @@ var UriRedirect = /*#__PURE__*/function (_React$Component) {
|
||||
var _this$props4 = this.props,
|
||||
uri = _this$props4.uri,
|
||||
item = _this$props4.item,
|
||||
loadItem = _this$props4.coreActions.loadItem;
|
||||
loadUri = _this$props4.coreActions.loadUri;
|
||||
|
||||
if (item) {
|
||||
this.redirect();
|
||||
} else {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
}
|
||||
|
||||
this.setWindowTitle();
|
||||
@ -138115,13 +138126,13 @@ var Discover = /*#__PURE__*/function (_React$Component) {
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "handleURLSeeds", function () {
|
||||
var _this$props2 = _this.props,
|
||||
loadItems = _this$props2.coreActions.loadItems,
|
||||
loadUris = _this$props2.coreActions.loadUris,
|
||||
seedsProp = _this$props2.match.params.seeds; // Rejoin if we've had to uri-encode these as strings
|
||||
// We'd need to do this if our URL has been encoded so the whole URL can become
|
||||
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
||||
|
||||
var seeds = seedsProp.split('_').join(':').split(',');
|
||||
loadItems(seeds);
|
||||
loadUris(seeds);
|
||||
|
||||
_this.setState({
|
||||
seeds: seeds
|
||||
@ -141893,14 +141904,15 @@ var AddToQueue = /*#__PURE__*/function (_React$Component) {
|
||||
_this$props2$view$uri = _this$props2.view.uris,
|
||||
prevUris = _this$props2$view$uri === void 0 ? [] : _this$props2$view$uri,
|
||||
_this$props2$coreActi = _this$props2.coreActions,
|
||||
loadItem = _this$props2$coreActi.loadItem,
|
||||
loadUri = _this$props2$coreActi.loadUri,
|
||||
viewDataLoaded = _this$props2$coreActi.viewDataLoaded;
|
||||
var uris = text.split(',');
|
||||
var uris = text.split(','); // TODO: Remove validation
|
||||
|
||||
var validatedUris = uris.filter(function (uri) {
|
||||
return Object(_util_helpers__WEBPACK_IMPORTED_MODULE_9__["uriType"])(uri);
|
||||
});
|
||||
validatedUris.forEach(function (uri) {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
});
|
||||
|
||||
_this.setState({
|
||||
@ -143579,7 +143591,7 @@ var EditRadio = /*#__PURE__*/function (_React$Component) {
|
||||
var _this$state = _this.state,
|
||||
uri = _this$state.uri,
|
||||
seeds = _this$state.seeds;
|
||||
var loadItem = _this.props.coreActions.loadItem;
|
||||
var loadUri = _this.props.coreActions.loadUri;
|
||||
e.preventDefault();
|
||||
|
||||
if (uri === '') {
|
||||
@ -143620,7 +143632,7 @@ var EditRadio = /*#__PURE__*/function (_React$Component) {
|
||||
});
|
||||
} else {
|
||||
validatedSeeds.push(uris[i]);
|
||||
loadItem(uris[i]);
|
||||
loadUri(uris[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
85
mopidy_iris/static/app.min.css
vendored
Normal file
85
mopidy_iris/static/app.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
111
mopidy_iris/static/app.min.js
vendored
Normal file
111
mopidy_iris/static/app.min.js
vendored
Normal file
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 = "1610478481";
|
||||
var build = "1610772376";
|
||||
var version = "3.55.5";
|
||||
|
||||
// Construct the script tag
|
||||
|
||||
@ -119,6 +119,18 @@ export function searchResultsLoaded(query, resultType, results) {
|
||||
* relevant service to load the record - all from one neat package.
|
||||
* */
|
||||
|
||||
export function loadUris(uris = [], options = {}) {
|
||||
return {
|
||||
type: 'LOAD_URIS',
|
||||
uris,
|
||||
options,
|
||||
};
|
||||
}
|
||||
|
||||
export function loadUri(uri, options = {}) {
|
||||
return loadUris([uri], options);
|
||||
}
|
||||
|
||||
export function loadItems(itemType, uris = [], options = {}) {
|
||||
return {
|
||||
type: 'LOAD_ITEMS',
|
||||
|
||||
@ -351,7 +351,6 @@ const CoreMiddleware = (function () {
|
||||
* we need to LOAD_URI to ascertain this first.
|
||||
* */
|
||||
case 'LOAD_ITEMS': {
|
||||
console.log(action);
|
||||
const { uris = [], options, itemType = 'uri' } = action;
|
||||
|
||||
uris.forEach((uri) => {
|
||||
|
||||
@ -83,13 +83,13 @@ class Queue extends React.Component {
|
||||
}) => {
|
||||
const {
|
||||
coreActions: {
|
||||
loadItem,
|
||||
loadUri,
|
||||
},
|
||||
added_from_uri,
|
||||
} = this.props;
|
||||
|
||||
if (added_from_uri && added_from_uri !== prev_added_from_uri) {
|
||||
loadItem(added_from_uri, { full: false });
|
||||
loadUri(added_from_uri);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,14 +14,14 @@ class UriRedirect extends React.Component {
|
||||
uri,
|
||||
item,
|
||||
coreActions: {
|
||||
loadItem,
|
||||
loadUri,
|
||||
},
|
||||
} = this.props;
|
||||
|
||||
if (item) {
|
||||
this.redirect();
|
||||
} else {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
}
|
||||
|
||||
this.setWindowTitle();
|
||||
@ -34,12 +34,12 @@ class UriRedirect extends React.Component {
|
||||
uri,
|
||||
item,
|
||||
coreActions: {
|
||||
loadItem,
|
||||
loadUri,
|
||||
},
|
||||
} = this.props;
|
||||
|
||||
if (prevUri !== uri) {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
this.setWindowTitle();
|
||||
}
|
||||
|
||||
|
||||
@ -213,7 +213,7 @@ class Discover extends React.Component {
|
||||
handleURLSeeds = () => {
|
||||
const {
|
||||
coreActions: {
|
||||
loadItems,
|
||||
loadUris,
|
||||
},
|
||||
match: {
|
||||
params: {
|
||||
@ -226,7 +226,7 @@ class Discover extends React.Component {
|
||||
// We'd need to do this if our URL has been encoded so the whole URL can become
|
||||
// it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":"
|
||||
const seeds = seedsProp.split('_').join(':').split(',');
|
||||
loadItems(seeds);
|
||||
loadUris(seeds);
|
||||
|
||||
this.setState(
|
||||
{ seeds },
|
||||
|
||||
@ -121,15 +121,16 @@ class AddToQueue extends React.Component {
|
||||
uris: prevUris = [],
|
||||
},
|
||||
coreActions: {
|
||||
loadItem,
|
||||
loadUri,
|
||||
viewDataLoaded,
|
||||
},
|
||||
} = this.props;
|
||||
const uris = text.split(',');
|
||||
|
||||
// TODO: Remove validation
|
||||
const validatedUris = uris.filter((uri) => uriType(uri));
|
||||
validatedUris.forEach((uri) => {
|
||||
loadItem(uri);
|
||||
loadUri(uri);
|
||||
});
|
||||
|
||||
this.setState({ text: '' });
|
||||
|
||||
@ -136,7 +136,7 @@ class EditRadio extends React.Component {
|
||||
} = this.state;
|
||||
const {
|
||||
coreActions: {
|
||||
loadItem,
|
||||
loadUri,
|
||||
},
|
||||
} = this.props;
|
||||
|
||||
@ -165,7 +165,7 @@ class EditRadio extends React.Component {
|
||||
this.setState({ error_message: i18n('modal.edit_radio.too_many_seeds') });
|
||||
} else {
|
||||
validatedSeeds.push(uris[i]);
|
||||
loadItem(uris[i]);
|
||||
loadUri(uris[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user