« 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
diff options
context:
space:
mode:
Diffstat (limited to 'src/content')
-rw-r--r--src/content/dependencies/generateAdditionalFilesListChunk.js24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/content/dependencies/generateAdditionalFilesListChunk.js b/src/content/dependencies/generateAdditionalFilesListChunk.js
index 7d0e41c1..a9ae96c3 100644
--- a/src/content/dependencies/generateAdditionalFilesListChunk.js
+++ b/src/content/dependencies/generateAdditionalFilesListChunk.js
@@ -1,7 +1,23 @@
-import {stitchArrays} from '#sugar';
+import {compareArrays, stitchArrays} from '#sugar';
 
 export default {
-  relations: (relation, file) => ({
+  query: (file) => ({
+    contextContribs:
+      ((file.thing.isTrack &&
+        compareArrays(
+          file.thing.artistContribs.map(contrib => contrib.artist),
+          file.thing.album.artistContribs.map(contrib => contrib.artist),
+          {checkOrder: false}))
+
+        ? file.thing.artistContribs
+
+     : file.thing.isAlbum
+        ? file.thing.artistContribs
+
+        : []),
+  }),
+
+  relations: (relation, query, file) => ({
     description:
       relation('transformContent', file.description),
 
@@ -10,10 +26,10 @@ export default {
         .map(filename => relation('linkAdditionalFile', file, filename)),
 
     artistCredit:
-      relation('generateArtistCredit', file.artistContribs, []),
+      relation('generateArtistCredit', file.artistContribs, query.contextContribs),
   }),
 
-  data: (file) => ({
+  data: (_query, file) => ({
     title:
       file.title,