Checking for tracks without albums, fixes #241

This commit is contained in:
James Barnsley
2018-02-12 08:14:13 +13:00
parent 88f7dc928a
commit 5a0b879c11
2 changed files with 32 additions and 22 deletions

View File

@ -1629,22 +1629,24 @@ const MopidyMiddleware = (function(){
.then(response => {
if (response.length <= 0) return
var albums = []
for(var i = 0; i < response.length; i++){
var album = Object.assign(
{},
response[i].album,
{
uri: response[i].album.uri,
}
);
if (album){
function getByURI(albumToCheck){
return album.uri == albumToCheck.uri
}
var existingAlbum = albums.find(getByURI);
if (!existingAlbum){
albums.push(album);
var albums = [];
for (var i = 0; i < response.length; i++){
if (response[i].album){
var album = Object.assign(
{},
response[i].album,
{
uri: response[i].album.uri,
}
);
if (album){
function getByURI(albumToCheck){
return album.uri == albumToCheck.uri
}
var existingAlbum = albums.find(getByURI);
if (!existingAlbum){
albums.push(album);
}
}
}
}
@ -1652,7 +1654,7 @@ const MopidyMiddleware = (function(){
store.dispatch({
type: 'ALBUMS_LOADED',
albums: albums
})
});
}
var artist = Object.assign(
@ -1668,7 +1670,7 @@ const MopidyMiddleware = (function(){
type: 'ARTIST_LOADED',
key: artist.uri,
artist: artist
})
});
// load artwork from LastFM
if (!artist.images || artist.images.length <= 0){

View File

@ -125,11 +125,14 @@ class Track extends React.Component{
}
renderLyricsSelector(){
if (!this.props.track.lyrics_results){
if (this.props.track.lyrics_results === undefined || this.props.track.lyrics_results === null){
return null;
} else if (this.props.track.lyrics_results.length <= 0){
return (
<div className="field lyrics-selector">
<div className="input">
<input type="text" disabled="disabled" value="Loading..." />
<input type="text" disabled="disabled" value="No results" />
<div className="description">
Switch to another lyrics seach result
</div>
@ -213,7 +216,7 @@ class Track extends React.Component{
uiActions={this.props.uiActions} /> : null}
<div className="thumbnail-wrapper">
<URILink type="album" uri={track.album.uri}>
<URILink type="album" uri={track.album ? track.album.uri : null}>
<Thumbnail size="large" canZoom images={track.images} />
</URILink>
</div>
@ -221,7 +224,12 @@ class Track extends React.Component{
<div className="title">
<h1>{track.name}</h1>
<h2 className="grey-text">{track.album ? <Link to={global.baseURL+'album/'+track.album.uri}>{track.album.name}</Link> : "Unknown album"} by <ArtistSentence artists={track.artists} /></h2>
<h2 className="grey-text">
{track.album && track.album.uri ? <Link to={global.baseURL+'album/'+track.album.uri}>{track.album.name}</Link> : null}
{track.album && !track.album.uri ? track.album.name : null}
{!track.album ? "Unknown album" : null}
&nbsp;by <ArtistSentence artists={track.artists} />
</h2>
<ul className="details">
{!this.props.slim_mode ? <li className="has-tooltip"><FontAwesome name={helpers.sourceIcon(this.props.params.uri)} /><span className="tooltip">{helpers.uriSource(this.props.params.uri)} track</span></li> : null}