Piggyback lazyloader for track loading
This commit is contained in:
@ -137,6 +137,12 @@ class Album extends React.Component{
|
||||
}
|
||||
}
|
||||
|
||||
if (tracks.length <= 0 && helpers.isLoading(this.props.load_queue,['spotify_albums/'+helpers.getFromUri('albumid',this.props.params.uri)])){
|
||||
var is_loading_tracks = true;
|
||||
} else {
|
||||
var is_loading_tracks = false;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="view album-view content-wrapper">
|
||||
<div className="thumbnail-wrapper">
|
||||
@ -165,7 +171,7 @@ class Album extends React.Component{
|
||||
|
||||
<section className="list-wrapper">
|
||||
<TrackList className="album-track-list" tracks={tracks} uri={this.props.params.uri} />
|
||||
<LazyLoadListener loading={this.props.album.tracks_more} loadMore={ () => this.loadMore() }/>
|
||||
<LazyLoadListener loading={this.props.album.tracks_more} forceLoader={is_loading_tracks} loadMore={() => this.loadMore()}/>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
@ -174,16 +174,6 @@ class Artist extends React.Component{
|
||||
|
||||
default:
|
||||
|
||||
var tracks = [];
|
||||
if (this.props.artist.tracks_uris && this.props.tracks){
|
||||
for (var i = 0; i < this.props.artist.tracks_uris.length; i++){
|
||||
var uri = this.props.artist.tracks_uris[i]
|
||||
if (this.props.tracks.hasOwnProperty(uri)){
|
||||
tracks.push(this.props.tracks[uri])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sort_options = [
|
||||
{
|
||||
value: 'name',
|
||||
@ -199,12 +189,29 @@ class Artist extends React.Component{
|
||||
}
|
||||
];
|
||||
|
||||
var tracks = [];
|
||||
if (this.props.artist.tracks_uris && this.props.tracks){
|
||||
for (var i = 0; i < this.props.artist.tracks_uris.length; i++){
|
||||
var uri = this.props.artist.tracks_uris[i]
|
||||
if (this.props.tracks.hasOwnProperty(uri)){
|
||||
tracks.push(this.props.tracks[uri])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tracks.length <= 0 && helpers.isLoading(this.props.load_queue,['spotify_artists/'+helpers.getFromUri('artistid',this.props.params.uri)+'/top-tracks'])){
|
||||
var is_loading_tracks = true;
|
||||
} else {
|
||||
var is_loading_tracks = false;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="body overview">
|
||||
<div className={"top-tracks col w"+(related_artists.length > 0 ? "70" : "100")}>
|
||||
<h4>Top tracks</h4>
|
||||
<div className="list-wrapper">
|
||||
<TrackList className="artist-track-list" uri={this.props.params.uri} tracks={tracks} />
|
||||
<LazyLoadListener forceLoader={is_loading_tracks} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -190,6 +190,12 @@ class Playlist extends React.Component{
|
||||
}
|
||||
}
|
||||
|
||||
if (tracks.length <= 0 && helpers.isLoading(this.props.load_queue,['spotify_users/'+user_id+'/playlists/'+playlist_id, 'spotify_users/'+user_id+'/playlists/'+playlist_id+'/tracks'])){
|
||||
var is_loading_tracks = true;
|
||||
} else {
|
||||
var is_loading_tracks = false;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="view playlist-view content-wrapper">
|
||||
<div className="thumbnail-wrapper">
|
||||
@ -216,7 +222,7 @@ class Playlist extends React.Component{
|
||||
|
||||
<section className="list-wrapper">
|
||||
<TrackList uri={this.props.params.uri} className="playlist-track-list" context={context} tracks={tracks} removeTracks={ tracks_indexes => this.removeTracks(tracks_indexes) } reorderTracks={ (indexes, index) => this.reorderTracks(indexes, index) } />
|
||||
<LazyLoadListener loading={this.props.playlist.tracks_more} loadMore={ () => this.loadMore() }/>
|
||||
<LazyLoadListener loading={this.props.playlist.tracks_more} forceLoader={is_loading_tracks} loadMore={() => this.loadMore()}/>
|
||||
</section>
|
||||
</div>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user