diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2025-10-25 20:01:33 -0300 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2025-10-25 20:01:33 -0300 |
| commit | 3ffa655de14ba931e213dd9f3ea1483dec1cd593 (patch) | |
| tree | f341fa49a0f096a8f20222d03c4848356a8dbd93 /src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js | |
| parent | 7feb8a6a0337f6d0621c4e8dc7e3d40c08d7d283 (diff) | |
content, css: gAIPTracksChunkItem: consider credited releases
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js')
| -rw-r--r-- | src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js b/src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js index 70bada19..bf5fe616 100644 --- a/src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js +++ b/src/content/dependencies/generateArtistInfoPageRereleaseTooltip.js @@ -1,10 +1,22 @@ import {sortAlbumsTracksChronologically} from '#sort'; export default { - query: (track) => ({ - firstRelease: - sortAlbumsTracksChronologically(track.allReleases)[0], - }), + query(track, artist) { + const query = {}; + + query.firstRelease = + sortAlbumsTracksChronologically(track.allReleases)[0]; + + const contribs = [ + ...query.firstRelease.artistContribs, + ...query.firstRelease.contributorContribs, + ]; + + query.creditedOnFirstRelease = + contribs.some(contrib => contrib.artist === artist); + + return query; + }, relations: (relation, query, track, artist) => ({ tooltip: @@ -14,10 +26,15 @@ export default { relation('generateColorStyleAttribute', track.color), firstReleaseLink: - relation('linkOtherReleaseOnArtistInfoPage', query.firstRelease, artist), + (query.creditedOnFirstRelease + ? relation('linkOtherReleaseOnArtistInfoPage', query.firstRelease, artist) + : relation('linkTrackAsRelease', query.firstRelease)), }), - data: (query, track) => ({ + data: (query, track, artist) => ({ + artistName: + artist.name, + rereleaseDate: track.dateFirstReleased ?? track.album.date, @@ -25,6 +42,9 @@ export default { firstReleaseDate: query.firstRelease.dateFirstReleased ?? query.firstRelease.album.date, + + creditedOnFirstRelease: + query.creditedOnFirstRelease, }), generate: (data, relations, {html, language}) => @@ -48,6 +68,15 @@ export default { approximate: true, absolute: true, }), + + !data.creditedOnFirstRelease && [ + html.tag('hr', {class: 'cute'}), + + html.tag('span', {class: 'not-credited-on-first-release'}, + language.$(capsule, 'notCreditedOnFirstRelease', { + artist: data.artistName, + })), + ], ], })), }; |