Genre for non-Spotify providers working

This commit is contained in:
James Barnsley
2022-05-22 12:58:54 +12:00
parent b60e2ee67e
commit 73a02caf9f
7 changed files with 53 additions and 61 deletions

View File

@ -159986,8 +159986,6 @@ var SecondaryLine = function SecondaryLine(_ref) {
followers = _ref$item.followers,
_ref$item$albums_uris = _ref$item.albums_uris,
albums_uris = _ref$item$albums_uris === void 0 ? [] : _ref$item$albums_uris,
_ref$item$playlists_u = _ref$item.playlists_uris,
playlists_uris = _ref$item$playlists_u === void 0 ? [] : _ref$item$playlists_u,
artists = _ref$item.artists;
var trackCount = 0;
if (tracks) trackCount = tracks.length;
@ -160112,7 +160110,7 @@ var GridItem = function GridItem(_ref2) {
Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
if (!item.images) {
if (!item.images && !item.loading) {
switch (item.type) {
case 'artist':
if (spotify_available) {
@ -160121,8 +160119,8 @@ var GridItem = function GridItem(_ref2) {
break;
case 'album':
case 'playlist':
case 'album':
dispatch(_services_mopidy_actions__WEBPACK_IMPORTED_MODULE_11__["getImages"]([item.uri]));
break;
@ -164809,7 +164807,7 @@ var Sidebar = function Sidebar() {
path: "sidebar.search",
"data-qa-node": "I18n",
"data-qa-file": "Sidebar"
}))), spotify_available && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", {
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", {
className: "sidebar__menu__section",
"data-qa-node": "section",
"data-qa-file": "Sidebar"
@ -170090,8 +170088,6 @@ var CoreMiddleware = function () {
case 'LOAD_PLAYLIST_GROUP':
{
var _fetch5 = function _fetch5() {
console.debug('fetching', action);
switch (Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["uriSource"])(action.uri)) {
case 'spotify':
store.dispatch(spotifyActions.getCategory(action.uri, action.options));
@ -170107,8 +170103,9 @@ var CoreMiddleware = function () {
store: store,
action: action,
fetch: _fetch5,
dependents: ['playlist_uris', 'playlists'],
type: 'playlist_group'
dependents: ['playlists_uris'],
type: 'playlist' // Refers to dependent's type
});
next(action);
break;
@ -174207,9 +174204,6 @@ var MopidyMiddleware = function () {
var itemsWithImages = [];
Object.keys(response).forEach(function (uri) {
var images = response[uri];
console.debug({
images: images
});
if (images) {
itemsWithImages.push({
@ -174441,21 +174435,21 @@ var MopidyMiddleware = function () {
case 'MOPIDY_GET_PLAYLIST_GROUP':
{
var decodedUri = action.uri ? decodeURIComponent(action.uri) : null;
store.dispatch(coreActions.itemLoaded({
var playlistGroup = Object(_util_format__WEBPACK_IMPORTED_MODULE_6__["formatPlaylistGroup"])({
uri: decodedUri,
loading: true
}));
});
store.dispatch(coreActions.itemLoaded(playlistGroup));
request(store, 'library.browse', {
uri: action.uri
}).then(function (browse) {
var playlists = Object(_util_format__WEBPACK_IMPORTED_MODULE_6__["formatPlaylists"])(browse);
var playlists_uris = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_7__["arrayOf"])('uri', playlists);
store.dispatch(coreActions.itemsLoaded(playlists));
store.dispatch(coreActions.itemLoaded({
uri: decodedUri,
store.dispatch(coreActions.itemLoaded(_objectSpread(_objectSpread({}, playlistGroup), {}, {
loading: false,
playlists_uris: playlists_uris
}));
})));
});
break;
}
@ -187313,8 +187307,8 @@ var PlaylistGroup = function PlaylistGroup(_ref) {
}
}, [playlistGroup]);
Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
loadPlaylistGroup(uri);
}, []);
if (uri) loadPlaylistGroup(uri);
}, [uri]);
var refresh = function refresh() {
hideContextMenu();

File diff suppressed because one or more lines are too long

View File

@ -22,7 +22,6 @@ const SecondaryLine = ({
tracks = [],
followers,
albums_uris = [],
playlists_uris = [],
artists,
} = {},
}) => {
@ -93,15 +92,15 @@ const GridItem = ({
// Load images
useEffect(() => {
if (!item.images) {
if (!item.images && !item.loading) {
switch (item.type) {
case 'artist':
if (spotify_available) {
dispatch(spotifyActions.getArtistImages(item));
}
break;
case 'album':
case 'playlist':
case 'album':
dispatch(mopidyActions.getImages([item.uri]));
break;
default:

View File

@ -85,33 +85,31 @@ const Sidebar = () => {
</Link>
</section>
{spotify_available && (
<section className="sidebar__menu__section">
<title className="sidebar__menu__section__title">
<I18n path="sidebar.discover" />
</title>
<Link to="/discover/recommendations" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="explore" type="material" />
<I18n path="sidebar.discover" />
</Link>
<Link to="/discover/moods" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="mood" type="material" />
<I18n path="sidebar.moods" />
</Link>
<Link to="/discover/categories" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="mood" type="material" />
<I18n path="sidebar.genre" />
</Link>
<Link to="/discover/featured" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="star" type="material" />
<I18n path="sidebar.featured_playlists" />
</Link>
<Link to="/discover/new-releases" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="new_releases" type="material" />
<I18n path="sidebar.new_releases" />
</Link>
</section>
)}
<section className="sidebar__menu__section">
<title className="sidebar__menu__section__title">
<I18n path="sidebar.discover" />
</title>
<Link to="/discover/recommendations" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="explore" type="material" />
<I18n path="sidebar.discover" />
</Link>
<Link to="/discover/moods" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="mood" type="material" />
<I18n path="sidebar.moods" />
</Link>
<Link to="/discover/categories" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="mood" type="material" />
<I18n path="sidebar.genre" />
</Link>
<Link to="/discover/featured" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="star" type="material" />
<I18n path="sidebar.featured_playlists" />
</Link>
<Link to="/discover/new-releases" className="sidebar__menu__item" activeClassName="sidebar__menu__item--active">
<Icon name="new_releases" type="material" />
<I18n path="sidebar.new_releases" />
</Link>
</section>
<section className="sidebar__menu__section">
<title className="sidebar__menu__section__title">

View File

@ -502,7 +502,6 @@ const CoreMiddleware = (function () {
case 'LOAD_PLAYLIST_GROUP': {
const fetch = () => {
console.debug('fetching', action)
switch (uriSource(action.uri)) {
case 'spotify':
store.dispatch(spotifyActions.getCategory(action.uri, action.options));
@ -516,8 +515,8 @@ const CoreMiddleware = (function () {
store,
action,
fetch,
dependents: ['playlist_uris', 'playlists'],
type: 'playlist_group',
dependents: ['playlists_uris'],
type: 'playlist', // Refers to dependent's type
});
next(action);
break;

View File

@ -1772,8 +1772,6 @@ const MopidyMiddleware = (function () {
Object.keys(response).forEach((uri) => {
const images = response[uri];
console.debug({ images })
if (images) {
itemsWithImages.push({
uri,
@ -1989,17 +1987,18 @@ const MopidyMiddleware = (function () {
case 'MOPIDY_GET_PLAYLIST_GROUP': {
const decodedUri = action.uri ? decodeURIComponent(action.uri) : null;
store.dispatch(coreActions.itemLoaded({
const playlistGroup = formatPlaylistGroup({
uri: decodedUri,
loading: true,
}));
});
store.dispatch(coreActions.itemLoaded(playlistGroup));
request(store, 'library.browse', { uri: action.uri })
.then((browse) => {
const playlists = formatPlaylists(browse);
const playlists_uris = arrayOf('uri', playlists);
store.dispatch(coreActions.itemsLoaded(playlists));
store.dispatch(coreActions.itemLoaded({
uri: decodedUri,
...playlistGroup,
loading: false,
playlists_uris,
}));

View File

@ -50,9 +50,12 @@ const PlaylistGroup = ({
}
}, [playlistGroup]);
useEffect(() => {
loadPlaylistGroup(uri);
}, []);
useEffect(
() => {
if (uri) loadPlaylistGroup(uri);
},
[uri],
);
const refresh = () => {
hideContextMenu();