« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunkItem.js')
-rw-r--r--src/content/dependencies/generateArtistInfoPageTracksChunkItem.js41
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),
   }),