« get me outta code hell

content: generateAlbumArtworkColumn: fix separating attaching arts - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-07-27 17:52:21 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-07-27 17:52:21 -0300
commitdec015d9e25d9455558c0959dd7c8e23a4527a4b (patch)
tree265f91b3b8da0fcf289822327db913277bfad377 /src
parent5dd97e7e1f0241701ca43b61cc346ea905f18922 (diff)
content: generateAlbumArtworkColumn: fix separating attaching arts
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/generateAlbumArtworkColumn.js54
1 files changed, 35 insertions, 19 deletions
diff --git a/src/content/dependencies/generateAlbumArtworkColumn.js b/src/content/dependencies/generateAlbumArtworkColumn.js
index e6762463..150d3b6e 100644
--- a/src/content/dependencies/generateAlbumArtworkColumn.js
+++ b/src/content/dependencies/generateAlbumArtworkColumn.js
@@ -2,37 +2,53 @@ export default {
   contentDependencies: ['generateAlbumArtInfoBox', 'generateCoverArtwork'],
   extraDependencies: ['html'],
 
-  relations: (relation, album) => ({
-    firstCover:
+  query: (album) => ({
+    nonAttachingArtworkIndex:
       (album.hasCoverArt
-        ? relation('generateCoverArtwork', album.coverArtworks[0])
+        ? album.coverArtworks.findIndex((artwork, index) =>
+            index > 1 &&
+            !artwork.attachAbove)
         : null),
+  }),
+
+  relations: (relation, query, album) => ({
+    firstCovers:
+      (album.hasCoverArt && query.nonAttachingArtworkIndex >= 1
+        ? album.coverArtworks
+            .slice(0, query.nonAttachingArtworkIndex)
+            .map(artwork => relation('generateCoverArtwork', artwork))
+
+     : album.hasCoverArt
+        ? album.coverArtworks
+            .map(artwork => relation('generateCoverArtwork', artwork))
 
-    restCovers:
-      (album.hasCoverArt
-        ? album.coverArtworks.slice(1).map(artwork =>
-            relation('generateCoverArtwork', artwork))
         : []),
 
     albumArtInfoBox:
       relation('generateAlbumArtInfoBox', album),
+
+    restCovers:
+      (album.hasCoverArt && query.nonAttachingArtworkIndex >= 1
+        ? album.coverArtworks
+            .slice(query.nonAttachingArtworkIndex)
+            .map(artwork => relation('generateCoverArtwork', artwork))
+
+        : []),
   }),
 
-  generate: (relations, {html}) =>
-    html.tags([
-      relations.firstCover?.slots({
+  generate(relations, {html}) {
+    for (const cover of [...relations.firstCovers, ...relations.restCovers]) {
+      cover.setSlots({
         showOriginDetails: true,
         showArtTagDetails: true,
         showReferenceDetails: true,
-      }),
+      });
+    }
 
+    return html.tags([
+      relations.firstCovers,
       relations.albumArtInfoBox,
-
-      relations.restCovers.map(cover =>
-        cover.slots({
-          showOriginDetails: true,
-          showArtTagDetails: true,
-          showReferenceDetails: true,
-        })),
-    ]),
+      relations.restCovers,
+    ]);
+  },
 };