diff --git a/src/js/components/GridItem.js b/src/js/components/GridItem.js index cc6090f3..0f427763 100755 --- a/src/js/components/GridItem.js +++ b/src/js/components/GridItem.js @@ -141,6 +141,7 @@ const GridItem = ({ className="grid__item__thumbnail" images={item.images || item.icons} type={item.type} + loading={item.loading} />
{item.name diff --git a/src/js/components/Thumbnail.js b/src/js/components/Thumbnail.js index 36403da2..2d9f7eb6 100755 --- a/src/js/components/Thumbnail.js +++ b/src/js/components/Thumbnail.js @@ -1,9 +1,13 @@ import React, { memo } from 'react'; import Link from './Link'; import Icon from './Icon'; +import Loader from './Loader'; export default memo((props) => { - const { placeholder = true } = props; + const { + placeholder = true, + loading, + } = props; const mapImageSizes = () => { // Single image if (props.image) { @@ -36,6 +40,7 @@ export default memo((props) => { const image = mapImageSizes(); let class_name = 'thumbnail thumbnail--loaded'; + if (loading) class_name += ' thumbnail--loading'; if (props.fill) class_name += ' thumbnail--fill'; if (props.size) class_name += ` thumbnail--${props.size}`; if (props.circle) class_name += ' thumbnail--circle'; @@ -79,6 +84,7 @@ export default memo((props) => { style={{ backgroundImage: `url("${image}")` }} /> )} +
{props.canZoom && image && ( { + store.dispatch(coreActions.itemLoaded({ + uri: playlist.uri, + loading: undefined, + })); }); } else { store.dispatch(coreActions.itemLoaded(playlist)); diff --git a/src/js/views/Album.js b/src/js/views/Album.js index fa41246c..ec7fd666 100755 --- a/src/js/views/Album.js +++ b/src/js/views/Album.js @@ -78,7 +78,7 @@ const Album = () => { } }, [album]); - if (album?.loading) { + if (!album?.name && album?.loading) { return ; } @@ -135,7 +135,14 @@ const Album = () => { return (
- +
diff --git a/src/js/views/Artist/Artist.js b/src/js/views/Artist/Artist.js index 62cc96a9..c331206c 100755 --- a/src/js/views/Artist/Artist.js +++ b/src/js/views/Artist/Artist.js @@ -90,7 +90,7 @@ const Artist = () => { }), ); - if (loading) { + if (!artist?.name && loading) { return ; } if (!artist) { @@ -116,7 +116,14 @@ const Artist = () => {
- +

{artist && artist.name}

diff --git a/src/js/views/Playlist.js b/src/js/views/Playlist.js index 9e595ab9..d9716981 100755 --- a/src/js/views/Playlist.js +++ b/src/js/views/Playlist.js @@ -211,7 +211,7 @@ const Playlist = ({ removeTracksFromPlaylist(uri, tracks_indexes); } - if (loading) { + if (loading && !playlist?.name) { return ; } if (!playlist) { @@ -254,7 +254,14 @@ const Playlist = ({
- +
@@ -310,7 +317,6 @@ const Playlist = ({

- {loadingTracks && }