diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-21 08:07:25 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-03-02 08:24:13 -0400 |
commit | 4b9550a2d8dda5d58861c8f2c2c2a7b7ec803059 (patch) | |
tree | 728de9061b6124934392bcb0d8c686e4a0f1e9b0 /src/content/dependencies/generateArtistInfoPageTracksChunkItem.js | |
parent | 5580640828d71d3c17f1c1f3ac51b42a9082d663 (diff) |
content: generateArtistInfoPageFirstReleaseTooltip
Also rescue hr.cute
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunkItem.js')
-rw-r--r-- | src/content/dependencies/generateArtistInfoPageTracksChunkItem.js | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js index 8be3f404..744e7c5f 100644 --- a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js +++ b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js @@ -4,6 +4,7 @@ import {empty} from '#sugar'; export default { contentDependencies: [ 'generateArtistInfoPageChunkItem', + 'generateArtistInfoPageFirstReleaseTooltip', 'generateArtistInfoPageOtherArtistLinks', 'generateArtistInfoPageRereleaseTooltip', 'linkTrack', @@ -63,16 +64,25 @@ export default { ]; } + // It's kinda awkward to perform this chronological sort here, + // per track, rather than just reusing the one that's done to + // sort all the items on the page altogether... but then, the + // sort for the page is actually *a different* sort, on purpsoe. + // That sort is according to the dates of the contributions; + // this is according to the dates of the tracks. Those can be + // different - and it's the latter that determines whether the + // track is a rerelease! + const allReleasesChronologically = + sortChronologically(query.track.allReleases); + + query.isFirstRelease = + allReleasesChronologically[0] === query.track; + query.isRerelease = - // It's kinda awkward to perform this chronological sort here, - // per track, rather than just reusing the one that's done to - // sort all the items on the page altogether... but then, the - // sort for the page is actually *a different* sort, on purpsoe. - // That sort is according to the dates of the contributions; - // this is according to the dates of the tracks. Those can be - // different - and it's the latter that determines whether the - // track is a rerelease! - sortChronologically(query.track.allReleases)[0] !== query.track; + allReleasesChronologically[0] !== query.track; + + query.hasOtherReleases = + !empty(query.track.otherReleases); return query; }, @@ -91,6 +101,11 @@ export default { (query.isRerelease ? relation('generateArtistInfoPageRereleaseTooltip', query.track) : null), + + firstReleaseTooltip: + (query.isFirstRelease && query.hasOtherReleases + ? relation('generateArtistInfoPageFirstReleaseTooltip', query.track) + : null), }), data: (query) => ({ @@ -108,6 +123,7 @@ export default { relations.template.slots({ otherArtistLinks: relations.otherArtistLinks, rereleaseTooltip: relations.rereleaseTooltip, + firstReleaseTooltip: relations.firstReleaseTooltip, annotation: (data.contribAnnotations |