« get me outta code hell

Merge branch 'album-commentary-tweaks' into preview - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/linkTrackDynamically.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-11-24 15:22:49 -0400
committer(quasar) nebula <qznebula@protonmail.com>2023-11-24 15:22:49 -0400
commit1443cf743ee1f5967022d661b92caba6633de7aa (patch)
tree125e1db3aba3316fd798edb08dd1b6d47bfe6905 /src/content/dependencies/linkTrackDynamically.js
parent5931dde25d47695444419e9576dcdcc7d21d4a3f (diff)
parentce46282c4d6cadb3a90243b7e0aa452e2dfa90d3 (diff)
Merge branch 'album-commentary-tweaks' into preview
Diffstat (limited to 'src/content/dependencies/linkTrackDynamically.js')
-rw-r--r--src/content/dependencies/linkTrackDynamically.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/content/dependencies/linkTrackDynamically.js b/src/content/dependencies/linkTrackDynamically.js
new file mode 100644
index 00000000..242cd4cb
--- /dev/null
+++ b/src/content/dependencies/linkTrackDynamically.js
@@ -0,0 +1,34 @@
+export default {
+  contentDependencies: ['linkTrack'],
+  extraDependencies: ['pagePath'],
+
+  relations: (relation, track) => ({
+    infoLink: relation('linkTrack', track),
+  }),
+
+  data: (track) => ({
+    trackDirectory:
+      track.directory,
+
+    albumDirectory:
+      track.album.directory,
+
+    trackHasCommentary:
+      !!track.commentary,
+  }),
+
+  generate(data, relations, {pagePath}) {
+    if (
+      pagePath[0] === 'albumCommentary' &&
+      pagePath[1] === data.albumDirectory &&
+      data.trackHasCommentary
+    ) {
+      relations.infoLink.setSlots({
+        anchor: true,
+        hash: data.trackDirectory,
+      });
+    }
+
+    return relations.infoLink;
+  },
+};