« get me outta code hell

content: handle albums w/ own commentary and no track commentary - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-07-12 17:26:10 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-07-12 17:26:10 -0300
commit13a923a8310dd20107d3a7794f97d86fde548ed9 (patch)
treed620865144b76261fda63e432ed64e6eda5d7047
parent03713e4097e193ee5eac94547d8c24618861b84c (diff)
content: handle albums w/ own commentary and no track commentary
-rw-r--r--src/content/dependencies/generateAlbumInfoPage.js10
-rw-r--r--src/content/dependencies/generateAlbumNavAccent.js11
2 files changed, 15 insertions, 6 deletions
diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js
index 1ceb510c..1c5be6e6 100644
--- a/src/content/dependencies/generateAlbumInfoPage.js
+++ b/src/content/dependencies/generateAlbumInfoPage.js
@@ -18,6 +18,7 @@ export default {
     'generateContentContentHeading',
     'generateContentHeading',
     'generatePageLayout',
+    'generateReadCommentaryLine',
     'linkAlbumCommentary',
     'linkAlbumGallery',
   ],
@@ -69,10 +70,13 @@ export default {
         : null),
 
     commentaryLink:
-      ([album, ...album.tracks].some(({commentary}) => !empty(commentary))
+      (album.tracks.some(track => !empty(track.commentary))
         ? relation('linkAlbumCommentary', album)
         : null),
 
+    readCommentaryLine:
+      relation('generateReadCommentaryLine', album),
+
     trackList:
       relation('generateAlbumTrackList', album),
 
@@ -164,6 +168,10 @@ export default {
 
                 : html.blank()),
 
+              !relations.commentaryLink &&
+              !html.isBlank(relations.artistCommentaryEntries) &&
+                relations.readCommentaryLine,
+
               !html.isBlank(relations.creditSourceEntries) &&
                 language.encapsulate(capsule, 'readCreditingSources', capsule =>
                   language.$(capsule, {
diff --git a/src/content/dependencies/generateAlbumNavAccent.js b/src/content/dependencies/generateAlbumNavAccent.js
index 432c5f3d..00aec94a 100644
--- a/src/content/dependencies/generateAlbumNavAccent.js
+++ b/src/content/dependencies/generateAlbumNavAccent.js
@@ -64,9 +64,8 @@ export default {
     hasMultipleTracks:
       album.tracks.length > 1,
 
-    commentaryPageIsStub:
-      [album, ...album.tracks]
-        .every(({commentary}) => empty(commentary)),
+    hasSubstantialCommentaryPage:
+      album.tracks.some(track => !empty(track.commentary)),
 
     galleryIsStub:
       album.tracks.every(t => !t.hasUniqueCoverArt),
@@ -97,14 +96,16 @@ export default {
         relations.nextLink.slot('link', relations.nextTrackLink);
 
     const galleryLink =
-      (!data.galleryIsStub || slots.currentExtra === 'gallery') &&
+      (!data.galleryIsStub ||
+       slots.currentExtra === 'gallery') &&
         relations.albumGalleryLink.slots({
           attributes: {class: slots.currentExtra === 'gallery' && 'current'},
           content: language.$(albumNavCapsule, 'gallery'),
         });
 
     const commentaryLink =
-      (!data.commentaryPageIsStub || slots.currentExtra === 'commentary') &&
+      (data.hasSubstantialCommentaryPage ||
+       slots.currentExtra === 'commentary') &&
         relations.albumCommentaryLink.slots({
           attributes: {class: slots.currentExtra === 'commentary' && 'current'},
           content: language.$(albumNavCapsule, 'commentary'),