« 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/generateTrackList.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateTrackList.js')
-rw-r--r--src/content/dependencies/generateTrackList.js29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/content/dependencies/generateTrackList.js b/src/content/dependencies/generateTrackList.js
index e30feb23..c259c914 100644
--- a/src/content/dependencies/generateTrackList.js
+++ b/src/content/dependencies/generateTrackList.js
@@ -1,20 +1,21 @@
 export default {
-  query: (tracks, contextTrack) => ({
-    presentedTracks:
-      (contextTrack
-        ? tracks.map(track =>
-            track.otherReleases.find(({album}) => album === contextTrack.album) ??
-            track)
-        : tracks),
-  }),
-
-  relations: (relation, query, _tracks, _contextTrack) => ({
+  relations: (relation, tracks, contextContributions) => ({
     items:
-      query.presentedTracks
-        .map(track => relation('generateTrackListItem', track, [])),
+      tracks.map(track =>
+        relation('generateTrackListItem', track, contextContributions)),
   }),
 
   slots: {
+    showArtists: {
+      validate: v => v.is(true, false, 'auto'),
+      default: 'auto',
+    },
+
+    showDuration: {
+      type: 'boolean',
+      default: false,
+    },
+
     colorMode: {
       validate: v => v.is('none', 'track', 'line'),
       default: 'track',
@@ -27,8 +28,8 @@ export default {
 
       relations.items.map(item =>
         item.slots({
-          showArtists: true,
-          showDuration: false,
+          showArtists: slots.showArtists,
+          showDuration: slots.showDuration,
           colorMode: slots.colorMode,
         }))),
 };