diff options
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunkItem.js')
| -rw-r--r-- | src/content/dependencies/generateArtistInfoPageTracksChunkItem.js | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js index a42d6fee..e976c57f 100644 --- a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js +++ b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js @@ -1,18 +1,8 @@ -import {sortChronologically} from '#sort'; +import {sortAlbumsTracksChronologically} from '#sort'; import {empty} from '#sugar'; export default { - contentDependencies: [ - 'generateArtistInfoPageChunkItem', - 'generateArtistInfoPageFirstReleaseTooltip', - 'generateArtistInfoPageOtherArtistLinks', - 'generateArtistInfoPageRereleaseTooltip', - 'linkTrack', - ], - - extraDependencies: ['html', 'language'], - - query (_artist, contribs) { + query(artist, contribs) { const query = {}; // TODO: Very mysterious what to do if the set of contributions is, @@ -22,11 +12,11 @@ export default { const creditedAsArtist = contribs - .some(contrib => contrib.isArtistContribution); + .some(contrib => contrib.thingProperty === 'artistContribs'); const creditedAsContributor = contribs - .some(contrib => contrib.isContributorContribution); + .some(contrib => contrib.thingProperty === 'contributorContribs'); const annotatedContribs = contribs @@ -34,11 +24,11 @@ export default { const annotatedArtistContribs = annotatedContribs - .filter(contrib => contrib.isArtistContribution); + .filter(contrib => contrib.thingProperty === 'artistContribs'); const annotatedContributorContribs = annotatedContribs - .filter(contrib => contrib.isContributorContribution); + .filter(contrib => contrib.thingProperty === 'contributorContribs'); // Don't display annotations associated with crediting in the // Contributors field if the artist is also credited as an Artist @@ -73,16 +63,23 @@ export default { // different - and it's the latter that determines whether the // track is a rerelease! const allReleasesChronologically = - sortChronologically(query.track.allReleases); + sortAlbumsTracksChronologically(query.track.allReleases); query.isFirstRelease = allReleasesChronologically[0] === query.track; - query.isRerelease = + query.isLaterRelease = allReleasesChronologically[0] !== query.track; - query.hasOtherReleases = - !empty(query.track.otherReleases); + query.hasOtherCreditedReleases = + query.track.otherReleases.some(track => { + const contribs = [ + ...track.artistContribs, + ...track.contributorContribs, + ]; + + return contribs.some(contrib => contrib.artist === artist); + }); return query; }, @@ -98,12 +95,12 @@ export default { relation('generateArtistInfoPageOtherArtistLinks', contribs), rereleaseTooltip: - (query.isRerelease + (query.isLaterRelease ? relation('generateArtistInfoPageRereleaseTooltip', query.track, artist) : null), firstReleaseTooltip: - (query.isFirstRelease && query.hasOtherReleases + (query.isFirstRelease && query.hasOtherCreditedReleases ? relation('generateArtistInfoPageFirstReleaseTooltip', query.track, artist) : null), }), |