Removing 'Date added', only available on some playlists; getPlaylistTracks split out

This commit is contained in:
James Barnsley
2020-11-11 20:26:58 +13:00
parent 3199071450
commit eb7901d626
5 changed files with 107 additions and 94 deletions

View File

@ -125352,7 +125352,7 @@ function reducer() {
/*!********************************************!*\
!*** ./src/js/services/spotify/actions.js ***!
\********************************************/
/*! exports provided: set, connect, authorizationGranted, revokeAuthorization, refreshingToken, tokenChanged, importAuthorization, getMe, getTrack, getFeaturedPlaylists, getCategories, getCategory, getNewReleases, getURL, getMore, getSearchResults, getAutocompleteResults, clearAutocompleteResults, following, resolveRadioSeeds, getRecommendations, getGenres, getArtist, getArtistImages, playArtistTopTracks, getUser, getAlbum, createPlaylist, savePlaylist, getPlaylist, addTracksToPlaylist, deleteTracksFromPlaylist, reorderPlaylistTracks, flushLibrary, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, getLibraryTracks */
/*! exports provided: set, connect, authorizationGranted, revokeAuthorization, refreshingToken, tokenChanged, importAuthorization, getMe, getTrack, getFeaturedPlaylists, getCategories, getCategory, getNewReleases, getURL, getMore, getSearchResults, getAutocompleteResults, clearAutocompleteResults, following, resolveRadioSeeds, getRecommendations, getGenres, getArtist, getArtistImages, playArtistTopTracks, getUser, getAlbum, createPlaylist, savePlaylist, getPlaylistTracks, getPlaylist, addTracksToPlaylist, deleteTracksFromPlaylist, reorderPlaylistTracks, flushLibrary, getLibraryPlaylists, getLibraryAlbums, getLibraryArtists, getLibraryTracks */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@ -125386,6 +125386,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAlbum", function() { return getAlbum; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPlaylist", function() { return createPlaylist; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "savePlaylist", function() { return savePlaylist; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPlaylistTracks", function() { return getPlaylistTracks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPlaylist", function() { return getPlaylist; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTracksToPlaylist", function() { return addTracksToPlaylist; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteTracksFromPlaylist", function() { return deleteTracksFromPlaylist; });
@ -126551,12 +126552,54 @@ function savePlaylist(uri, name, description, is_public, is_collaborative, image
});
};
}
function getPlaylist(uri) {
function getPlaylistTracks(uri) {
var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
full = _ref7.full,
forceRefetch = _ref7.forceRefetch,
callbackAction = _ref7.callbackAction;
return function (dispatch, getState) {
var initialEndpoint = "playlists/".concat(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getFromUri"])('playlistid', uri), "/tracks");
initialEndpoint += "?market=".concat(getState().spotify.country);
if (forceRefetch) initialEndpoint += "&refetch=".concat(Date.now());
var tracks = [];
var fetchTracks = function fetchTracks(endpoint) {
return request(dispatch, getState, endpoint).then(function (response) {
tracks = [].concat(_toConsumableArray(tracks), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatTracks"])(response.items)));
if (response.next) {
fetchTracks(response.next);
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
tracks: Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["injectSortId"])(tracks) // only inject sort_id when we've loaded them all
}));
if (callbackAction) {
switch (callbackAction.name) {
case 'enqueue':
dispatch(mopidyActions.enqueueURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_1__["arrayOf"])('uri', tracks), uri, callbackAction.play_next, callbackAction.at_position, callbackAction.offset));
break;
case 'play':
dispatch(mopidyActions.playURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_1__["arrayOf"])('uri', tracks), uri, callbackAction.shuffle));
break;
default:
break;
}
}
}
});
};
fetchTracks(initialEndpoint);
};
}
function getPlaylist(uri, options) {
var full = options.full,
forceRefetch = options.forceRefetch;
return function (dispatch, getState) {
var endpoint = "playlists/".concat(Object(_util_helpers__WEBPACK_IMPORTED_MODULE_2__["getFromUri"])('playlistid', uri));
endpoint += "?market=".concat(getState().spotify.country);
@ -126567,8 +126610,6 @@ function getPlaylist(uri) {
// 3. Update process as tracks are loaded and enqueue occurs
request(dispatch, getState, endpoint).then(function (response) {
var tracks = Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["injectSortId"])(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatTracks"])(response.tracks.items)); // convert links in description
var description = null;
if (response.description) {
@ -126580,45 +126621,15 @@ function getPlaylist(uri) {
dispatch(coreActions.itemLoaded(_objectSpread(_objectSpread({}, Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatPlaylist"])(response)), {}, {
can_edit: getState().spotify.me && getState().spotify.me.id === response.owner.id,
description: description
}, full ? {} : {
description: description,
// Remove tracks. They're handed by another query which allows our detector
// to accurately identify whether we've loaded *ALL* the tracks. Without this, it
// doesn't know if we've loaded all tracks, or just the first page.
tracks: null
})));
if (full) {
var fetchTracks = function fetchTracks(endpoint) {
return request(dispatch, getState, endpoint).then(function (response) {
tracks = [].concat(_toConsumableArray(tracks), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatTracks"])(response.items)));
if (response.next) {
fetchTracks(response.next);
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
tracks: Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["injectSortId"])(tracks)
}));
if (callbackAction) {
switch (callbackAction.name) {
case 'enqueue':
dispatch(mopidyActions.enqueueURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_1__["arrayOf"])('uri', tracks), uri, callbackAction.play_next, callbackAction.at_position, callbackAction.offset));
break;
case 'play':
dispatch(mopidyActions.playURIs(Object(_util_arrays__WEBPACK_IMPORTED_MODULE_1__["arrayOf"])('uri', tracks), uri, callbackAction.shuffle));
break;
default:
break;
}
}
}
});
};
if (response.tracks.next) {
fetchTracks(response.tracks.next);
}
dispatch(getPlaylistTracks(uri, options));
}
;
@ -136182,9 +136193,6 @@ var Playlist = /*#__PURE__*/function (_React$Component) {
var sort_options = [{
value: 'sort_id',
label: Object(_locale__WEBPACK_IMPORTED_MODULE_23__["i18n"])('playlist.tracks.sort.sort_id')
}, {
value: 'added_at',
label: Object(_locale__WEBPACK_IMPORTED_MODULE_23__["i18n"])('playlist.tracks.sort.added_at')
}, {
value: 'name',
label: Object(_locale__WEBPACK_IMPORTED_MODULE_23__["i18n"])('playlist.tracks.sort.name')

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 = "1604908894";
var build = "1605078452";
var version = "3.54.0";
// Construct the script tag