Subdirectories now route to artist/album/playlist if backend type provided

This commit is contained in:
James Barnsley
2021-04-29 21:01:15 +12:00
parent 74aa6e471a
commit c5c818b36f
10 changed files with 52 additions and 23 deletions

View File

@ -157986,9 +157986,10 @@ var GridItem = function GridItem(_ref2) {
}, [item.images]); // Build link
var to = '';
var getLinkResult = getLink ? getLink(item) : undefined;
if (getLink) {
to = getLink(item);
if (getLinkResult) {
to = getLinkResult;
} else if (item.link) {
to = item.link;
} else {
@ -159127,9 +159128,10 @@ var ListItem = function ListItem(_ref) {
var onClick = function onClick(e) {
var to = '';
var getLinkResult = getLink ? getLink(item) : undefined;
if (getLink) {
to = getLink(item);
if (getLinkResult) {
to = getLinkResult;
} else if (item.link) {
to = item.link;
} else {
@ -172345,6 +172347,19 @@ var MopidyMiddleware = function () {
loading: true
})));
subdirectoryImagesToLoad.push(item.uri);
} else if (item.__model__ === 'Ref' && item.type === 'artist') {
subdirectories.push(Object(_util_format__WEBPACK_IMPORTED_MODULE_6__["formatArtist"])(_objectSpread(_objectSpread({}, item), {}, {
loading: true
})));
subdirectoryImagesToLoad.push(item.uri);
} else if (item.__model__ === 'Ref' && item.type === 'playlist') {
console.debug('playlist', {
item: item
});
subdirectories.push(Object(_util_format__WEBPACK_IMPORTED_MODULE_6__["formatPlaylist"])(_objectSpread(_objectSpread({}, item), {}, {
loading: true
})));
subdirectoryImagesToLoad.push(item.uri);
} else {
subdirectories.push(item);
}
@ -176019,7 +176034,7 @@ function getArtist(uri) {
albums = [].concat(_toConsumableArray(albums), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatAlbums"])(response.items)));
if (response.next) {
fetchAlbums(response.next);
fetchAlbums("".concat(response.next).concat(forceRefetch ? "&refetch=".concat(Date.now()) : ''));
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
@ -176138,7 +176153,7 @@ function getUser(uri) {
playlists = [].concat(_toConsumableArray(playlists), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatPlaylists"])(response.items)));
if (response.next) {
fetchPlaylists(response.next);
fetchPlaylists("".concat(response.next).concat(forceRefetch ? "&refetch=".concat(Date.now()) : ''));
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
@ -176193,7 +176208,7 @@ function getAlbum(uri) {
tracks = [].concat(_toConsumableArray(tracks), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatTracks"])(response.items)));
if (response.next) {
fetchTracks(response.next);
fetchTracks("".concat(response.next).concat(forceRefetch ? "&refetch=".concat(Date.now()) : ''));
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
@ -176341,7 +176356,7 @@ function getPlaylistTracks(uri) {
tracks = [].concat(_toConsumableArray(tracks), _toConsumableArray(Object(_util_format__WEBPACK_IMPORTED_MODULE_3__["formatTracks"])(response.items)));
if (response.next) {
fetchTracks(response.next);
fetchTracks("".concat(response.next).concat(forceRefetch ? "&refetch=".concat(Date.now()) : ''));
} else {
dispatch(coreActions.itemLoaded({
uri: uri,
@ -187623,6 +187638,7 @@ var DiscoverCategories = /*#__PURE__*/function (_React$Component) {
getLink: function getLink(item) {
return "/discover/categories/".concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_9__["encodeUri"])(item.uri));
},
sourceIcon: false,
"data-qa-node": "Grid",
"data-qa-file": "DiscoverCategories"
})));
@ -190100,8 +190116,7 @@ var LibraryBrowse = /*#__PURE__*/function (_React$Component) {
_defineProperty(_assertThisInitialized(_this), "render", function () {
var _this$props = _this.props,
loading = _this$props.loading,
directory = _this$props.directory,
mopidyActions = _this$props.mopidyActions;
directory = _this$props.directory;
if (!directory) {
if (loading) {
@ -190366,10 +190381,10 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
var Subdirectories = function Subdirectories(_ref2) {
var items = _ref2.items,
view = _ref2.view;
if (!items.length) return null;
if (!items.length) return null; // Only define the link for directories; allows URILink to intelligently route based on type
var link = function link(item) {
return "/library/browse/".concat(encodeURIComponent(item.name), "/").concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_19__["encodeUri"])(item.uri));
return item.type === 'directory' ? "/library/browse/".concat(encodeURIComponent(item.name), "/").concat(Object(_util_format__WEBPACK_IMPORTED_MODULE_19__["encodeUri"])(item.uri)) : null;
};
if (view === 'list') {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -115,7 +115,7 @@
// Release details
// These are automatically injected to built HTML
var build = "1619601071";
var build = "1619686814";
var version = "3.57.6";
// Construct the script tag

View File

@ -104,8 +104,9 @@ const GridItem = ({
// Build link
let to = '';
if (getLink) {
to = getLink(item);
const getLinkResult = getLink ? getLink(item) : undefined;
if (getLinkResult) {
to = getLinkResult;
} else if (item.link) {
to = item.link;
} else {

View File

@ -133,8 +133,9 @@ const ListItem = ({
*/
const onClick = (e) => {
let to = '';
if (getLink) {
to = getLink(item);
const getLinkResult = getLink ? getLink(item) : undefined;
if (getLinkResult) {
to = getLinkResult;
} else if (item.link) {
to = item.link;
} else {

View File

@ -1663,6 +1663,13 @@ const MopidyMiddleware = (function () {
} else if (item.__model__ === 'Ref' && item.type === 'album') {
subdirectories.push(formatAlbum({ ...item, loading: true }));
subdirectoryImagesToLoad.push(item.uri);
} else if (item.__model__ === 'Ref' && item.type === 'artist') {
subdirectories.push(formatArtist({ ...item, loading: true }));
subdirectoryImagesToLoad.push(item.uri);
} else if (item.__model__ === 'Ref' && item.type === 'playlist') {
console.debug('playlist', { item })
subdirectories.push(formatPlaylist({ ...item, loading: true }));
subdirectoryImagesToLoad.push(item.uri);
} else {
subdirectories.push(item);
}

View File

@ -57,6 +57,7 @@ class DiscoverCategories extends React.Component {
className="grid--tiles"
items={categories}
getLink={(item) => `/discover/categories/${encodeUri(item.uri)}`}
sourceIcon={false}
/>
</section>
</div>

View File

@ -31,7 +31,6 @@ class LibraryBrowse extends React.Component {
const {
loading,
directory,
mopidyActions,
} = this.props;
if (!directory) {

View File

@ -37,7 +37,12 @@ const Breadcrumbs = ({ uri }) => {
const Subdirectories = ({ items, view }) => {
if (!items.length) return null;
const link = (item) => `/library/browse/${encodeURIComponent(item.name)}/${encodeUri(item.uri)}`;
// Only define the link for directories; allows URILink to intelligently route based on type
const link = (item) => (
item.type === 'directory'
? `/library/browse/${encodeURIComponent(item.name)}/${encodeUri(item.uri)}`
: null
);
if (view === 'list') {
return (