Refactor of isLoading for array of matches now staggered

This commit is contained in:
James Barnsley
2021-01-31 13:33:24 +13:00
parent 40e6ed5045
commit 1d77d497be
11 changed files with 142 additions and 147 deletions

View File

@ -366,7 +366,7 @@ class Album extends React.Component {
const mapStateToProps = (state, ownProps) => {
const uri = decodeURIComponent(ownProps.match.params.uri);
const itemSelector = makeItemSelector(uri);
const loadingSelector = makeLoadingSelector([`^(.*)${uri}(.*)(?!contains)(.*)$`]);
const loadingSelector = makeLoadingSelector([`(.*)${uri}(.*)`, '^((?!contains).)*$', '^((?!me/albums).)*$']);
return {
uri,
slim_mode: state.ui.slim_mode,

View File

@ -604,7 +604,7 @@ class Artist extends React.Component {
const mapStateToProps = (state, ownProps) => {
const uri = decodeURIComponent(ownProps.match.params.uri);
const loadingSelector = makeLoadingSelector([`(.*)${uri}(.*)`]);
const loadingSelector = makeLoadingSelector([`(.*)${uri}(.*)`, '^((?!contains).)*$', '^((?!/albums).)*$', '^((?!related-artists).)*$', '^((?!top-tracks).)*$']);
const artistSelector = makeItemSelector(uri);
const artist = artistSelector(state);
let albums = null;

View File

@ -143,7 +143,7 @@ class Track extends React.Component {
},
} = this.props;
loadTrack(decodeUri(uri));
loadTrack(decodeUri(uri), { full: true, lyrics: true });
if (track) {
this.setWindowTitle(track);
@ -157,28 +157,13 @@ class Track extends React.Component {
const {
uri,
track,
genius_authorized,
lastfm_authorized,
coreActions: {
loadTrack,
},
geniusActions: {
findTrackLyrics,
},
lastfmActions: {
getTrack,
},
} = this.props;
if (prevUri !== uri) {
loadTrack(decodeUri(uri));
}
// We have just received our full track or our track artists
if ((!prevTrack && track) || (prevTrack && !prevTrack.artists && track.artists)) {
this.setWindowTitle(track);
if (lastfm_authorized) getTrack(track.uri);
if (genius_authorized && !track.lyrics_results) findTrackLyrics(track);
loadTrack(decodeUri(uri), { full: true, lyrics: true });
}
if (!prevTrack && track) this.setWindowTitle(track);
@ -339,10 +324,12 @@ class Track extends React.Component {
const mapStateToProps = (state, ownProps) => {
const uri = decodeUri(ownProps.match.params.uri);
const loadingSelector = makeLoadingSelector([`^(?!genius)(.*)${uri}(.*)$`]);
const loadingSelector = makeLoadingSelector([`(.*)${uri}(.*)`, '^((?!genius).)*$', '^((?!contains).)*$']);
const loadingLyricsSelector = makeLoadingSelector([`^genius_(.*)lyrics_${uri}$`]);
const trackSelector = makeItemSelector(uri);
console.debug(`^(?!genius)(.*)${uri}(.*)(?!contains)(.*)$`)
return {
uri,
slim_mode: state.ui.slim_mode,