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 && }