« get me outta code hell

data, content: singles - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateTrackInfoPage.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-07-02 17:43:34 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-07-02 17:43:34 -0300
commit112a840bdf69bfba5aae893e92b0b20c4a4884fd (patch)
treef82c3244a2f743d69e45556138b4ecd06b5369af /src/content/dependencies/generateTrackInfoPage.js
parentda8d9d616eb4d002126a89e6cba7f26053c6e4c3 (diff)
data, content: singles
Diffstat (limited to 'src/content/dependencies/generateTrackInfoPage.js')
-rw-r--r--src/content/dependencies/generateTrackInfoPage.js30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js
index 6c16ce27..1a5f84be 100644
--- a/src/content/dependencies/generateTrackInfoPage.js
+++ b/src/content/dependencies/generateTrackInfoPage.js
@@ -48,6 +48,9 @@ export default {
     navLinks:
       relation('generateTrackNavLinks', track),
 
+    albumNavLink:
+      relation('linkAlbum', track.album),
+
     albumNavAccent:
       relation('generateAlbumNavAccent', track.album, track),
 
@@ -125,6 +128,10 @@ export default {
 
     color:
       track.color,
+
+    singleTrackSingle:
+      track.album.style === 'single' &&
+      track.album.tracks.length === 1,
   }),
 
   generate: (data, relations, {html, language}) =>
@@ -376,17 +383,28 @@ export default {
         ],
 
         navLinkStyle: 'hierarchical',
-        navLinks: html.resolve(relations.navLinks),
+        navLinks:
+          (data.singleTrackSingle
+            ? [
+                {auto: 'home'},
+                {html: relations.albumNavLink},
+              ]
+            : html.resolve(relations.navLinks)),
 
         navBottomRowContent:
-          relations.albumNavAccent.slots({
-            showTrackNavigation: true,
-            showExtraLinks: false,
-          }),
+          (data.singleTrackSingle
+            ? relations.albumNavAccent.slots({
+                showTrackNavigation: false,
+                showExtraLinks: true,
+              })
+            : relations.albumNavAccent.slots({
+                showTrackNavigation: true,
+                showExtraLinks: false,
+              })),
 
         secondaryNav:
           relations.secondaryNav
-            .slot('mode', 'track'),
+            .slot('mode', data.singleTrackSingle ? 'album' : 'track'),
 
         leftSidebar: relations.sidebar,