« get me outta code hell

content: generateNearbyTrackList - 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:
author(quasar) nebula <qznebula@protonmail.com>2025-10-23 18:17:33 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-10-23 18:19:17 -0300
commit2d8622f8b31df0367ded52a45d7362abfe6d9a7c (patch)
tree0c66e60a8b86729d32daf025e5ac13a4be235a2f /src/content/dependencies/generateTrackList.js
parente100804966122cd730a0ec4bf55ad10e10b6be60 (diff)
content: generateNearbyTrackList
makes generateTrackList more general
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 6771285a..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: 'auto',
-          showDuration: false,
+          showArtists: slots.showArtists,
+          showDuration: slots.showDuration,
           colorMode: slots.colorMode,
         }))),
 };