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

@ -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();