« get me outta code hell

content: generateGridActionLinks - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateCoverGrid.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-07-26 11:13:29 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-07-26 11:21:51 -0300
commitbdb4276ffae1c978ec1d1a6e462faf8c117e20a9 (patch)
tree432a10d27672fce3940649307e1ab126003e49b6 /src/content/dependencies/generateCoverGrid.js
parent2a255b6c2e5970a523f9e2d6cf2b4d51dea97f06 (diff)
content: generateGridActionLinks
Diffstat (limited to 'src/content/dependencies/generateCoverGrid.js')
-rw-r--r--src/content/dependencies/generateCoverGrid.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/content/dependencies/generateCoverGrid.js b/src/content/dependencies/generateCoverGrid.js
index c7713cc..a9beb6f 100644
--- a/src/content/dependencies/generateCoverGrid.js
+++ b/src/content/dependencies/generateCoverGrid.js
@@ -1,8 +1,15 @@
 import {stitchArrays} from '../../util/sugar.js';
 
 export default {
+  contentDependencies: ['generateGridActionLinks'],
   extraDependencies: ['html'],
 
+  relations(relation) {
+    return {
+      actionLinks: relation('generateGridActionLinks'),
+    };
+  },
+
   slots: {
     images: {validate: v => v.strictArrayOf(v.isHTML)},
     links: {validate: v => v.strictArrayOf(v.isHTML)},
@@ -10,11 +17,12 @@ export default {
     info: {validate: v => v.strictArrayOf(v.isHTML)},
 
     lazy: {validate: v => v.oneOf(v.isWholeNumber, v.isBoolean)},
+    actionLinks: {validate: v => v.sparseArrayOf(v.isHTML)},
   },
 
-  generate(slots, {html}) {
+  generate(relations, slots, {html}) {
     return (
-      html.tag('div', {class: 'grid-listing'},
+      html.tag('div', {class: 'grid-listing'}, [
         stitchArrays({
           image: slots.images,
           link: slots.links,
@@ -37,6 +45,10 @@ export default {
                 html.tag('span', {[html.onlyIfContent]: true}, name),
                 html.tag('span', {[html.onlyIfContent]: true}, info),
               ],
-            }))));
+            })),
+
+        relations.actionLinks
+          .slot('actionLinks', slots.actionLinks),
+      ]));
   },
 };