« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateFlashActGalleryPage.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateFlashActGalleryPage.js')
-rw-r--r--src/content/dependencies/generateFlashActGalleryPage.js51
1 files changed, 17 insertions, 34 deletions
diff --git a/src/content/dependencies/generateFlashActGalleryPage.js b/src/content/dependencies/generateFlashActGalleryPage.js
index 8f174b21..681a61b8 100644
--- a/src/content/dependencies/generateFlashActGalleryPage.js
+++ b/src/content/dependencies/generateFlashActGalleryPage.js
@@ -1,21 +1,4 @@
-import {stitchArrays} from '#sugar';
-
-import striptags from 'striptags';
-
 export default {
-  contentDependencies: [
-    'generateCoverGrid',
-    'generateFlashActNavAccent',
-    'generateFlashActSidebar',
-    'generatePageLayout',
-    'image',
-    'linkFlash',
-    'linkFlashAct',
-    'linkFlashIndex',
-  ],
-
-  extraDependencies: ['language'],
-
   relations: (relation, act) => ({
     layout:
       relation('generatePageLayout'),
@@ -24,7 +7,7 @@ export default {
       relation('linkFlashIndex'),
 
     flashActNavLink:
-      relation('linkFlashAct', act),
+      relation('linkFlashActWithTitle', act),
 
     flashActNavAccent:
       relation('generateFlashActNavAccent', act),
@@ -37,7 +20,7 @@ export default {
 
     coverGridImages:
       act.flashes
-        .map(_flash => relation('image')),
+        .map(flash => relation('image', flash.coverArtwork)),
 
     flashLinks:
       act.flashes
@@ -46,22 +29,28 @@ export default {
 
   data: (act) => ({
     name: act.name,
+    title: act.title,
     color: act.color,
 
     flashNames:
       act.flashes.map(flash => flash.name),
-
-    flashCoverPaths:
-      act.flashes.map(flash =>
-        ['media.flashArt', flash.directory, flash.coverArtFileExtension])
   }),
 
-  generate: (data, relations, {language}) =>
-    language.encapsulate('flashPage', pageCapsule =>
+  generate: (data, relations, {html, language}) =>
+    language.encapsulate('flashActPage', pageCapsule =>
       relations.layout.slots({
         title:
-          language.$(pageCapsule, 'title', {
-            flash: striptags(data.name),
+          language.encapsulate(pageCapsule, 'title', workingCapsule => {
+            const workingOptions = {act: data.name};
+
+            if (data.title) {
+              workingCapsule += '.withTitle'; // sigh
+              workingOptions.title =
+                html.tag('span', {class: 'flash-act-title'},
+                  data.title);
+            }
+
+            return language.$(workingCapsule, workingOptions);
           }),
 
         color: data.color,
@@ -71,15 +60,9 @@ export default {
         mainContent: [
           relations.coverGrid.slots({
             links: relations.flashLinks,
+            images: relations.coverGridImages,
             names: data.flashNames,
             lazy: 6,
-
-            images:
-              stitchArrays({
-                image: relations.coverGridImages,
-                path: data.flashCoverPaths,
-              }).map(({image, path}) =>
-                  image.slot('path', path)),
           }),
         ],