« get me outta code hell

data, content: stub multiple artworks - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateCoverArtwork.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-02 15:10:58 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:38 -0300
commit58fba5a7a859c5398e0e58f31d7e8e5a649db63b (patch)
tree39f4ac7ed8292d2af453263f63ecdfaf93cba42d /src/content/dependencies/generateCoverArtwork.js
parent4030a62fc518627071dc792e2754d9d99fa46546 (diff)
data, content: stub multiple artworks
Only for tracks as of this commit, most anything else is in a
severely broken state aye
Diffstat (limited to 'src/content/dependencies/generateCoverArtwork.js')
-rw-r--r--src/content/dependencies/generateCoverArtwork.js34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/content/dependencies/generateCoverArtwork.js b/src/content/dependencies/generateCoverArtwork.js
index 58c29830..719d14e9 100644
--- a/src/content/dependencies/generateCoverArtwork.js
+++ b/src/content/dependencies/generateCoverArtwork.js
@@ -1,7 +1,24 @@
 export default {
-  contentDependencies: ['image'],
+  contentDependencies: [
+    'generateCoverArtworkArtTagDetails',
+    'generateCoverArtworkArtistDetails',
+    'generateCoverArtworkOriginDetails',
+    'image',
+  ],
+
   extraDependencies: ['html'],
 
+  relations: (relation, artwork) => ({
+    originDetails:
+      relation('generateCoverArtworkOriginDetails', artwork),
+
+    artTagDetails:
+      relation('generateCoverArtworkArtTagDetails', artwork),
+
+    artistDetails:
+      relation('generateCoverArtworkArtistDetails', artwork),
+  }),
+
   slots: {
     image: {
       type: 'html',
@@ -21,13 +38,17 @@ export default {
       validate: v => v.looseArrayOf(v.isString),
     },
 
+    showOriginDetails: {type: 'boolean', default: false},
+    showArtTagDetails: {type: 'boolean', default: false},
+    showArtistDetails: {type: 'boolean', default: false},
+
     details: {
       type: 'html',
       mutable: false,
     },
   },
 
-  generate(slots, {html}) {
+  generate(relations, slots, {html}) {
     const square =
       (slots.dimensions
         ? slots.dimensions[0] === slots.dimensions[1]
@@ -54,7 +75,14 @@ export default {
                 ...sizeSlots,
               }),
 
-              slots.details,
+              slots.showOriginDetails &&
+                relations.originDetails,
+
+              slots.showArtTagDetails &&
+                relations.artTagDetails,
+
+              slots.showArtistDetails &&
+                relations.artistDetails,
             ]
        : slots.mode === 'thumbnail'
           ? slots.image.slots({