« 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/generateTrackReferencedArtworksPage.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateTrackReferencedArtworksPage.js')
-rw-r--r--src/content/dependencies/generateTrackReferencedArtworksPage.js122
1 files changed, 18 insertions, 104 deletions
diff --git a/src/content/dependencies/generateTrackReferencedArtworksPage.js b/src/content/dependencies/generateTrackReferencedArtworksPage.js
index 545276c5..ac81e525 100644
--- a/src/content/dependencies/generateTrackReferencedArtworksPage.js
+++ b/src/content/dependencies/generateTrackReferencedArtworksPage.js
@@ -1,23 +1,17 @@
-import {stitchArrays} from '#sugar';
-
 export default {
   contentDependencies: [
     'generateAlbumStyleRules',
     'generateBackToTrackLink',
-    'generateCoverGrid',
-    'generatePageLayout',
+    'generateReferencedArtworksPage',
     'generateTrackCoverArtwork',
     'generateTrackNavLinks',
-    'image',
-    'linkAlbum',
-    'linkTrack',
   ],
 
   extraDependencies: ['html', 'language'],
 
   relations: (relation, track) => ({
-    layout:
-      relation('generatePageLayout'),
+    page:
+      relation('generateReferencedArtworksPage', track.referencedArtworks),
 
     albumStyleRules:
       relation('generateAlbumStyleRules', track.album, track),
@@ -30,21 +24,6 @@ export default {
 
     cover:
       relation('generateTrackCoverArtwork', track),
-
-    coverGrid:
-      relation('generateCoverGrid'),
-
-    links:
-      track.referencedArtworks
-        .map(({thing}) =>
-          (thing.album
-            ? relation('linkTrack', thing)
-            : relation('linkAlbum', thing))),
-
-    images:
-      track.referencedArtworks
-        .map(({thing}) =>
-          relation('image', thing.artTags)),
   }),
 
   data: (track) => ({
@@ -53,91 +32,26 @@ export default {
 
     color:
       track.color,
-
-    count:
-      track.referencedArtworks.length,
-
-    names:
-      track.referencedArtworks
-        .map(({thing}) => thing.name),
-
-    paths:
-      track.referencedArtworks
-        .map(({thing}) =>
-          (thing.album
-            ? ['media.trackCover', thing.album.directory, thing.directory, thing.coverArtFileExtension]
-            : ['media.albumCover', thing.directory, thing.coverArtFileExtension])),
-
-    dimensions:
-      track.referencedArtworks
-        .map(({thing}) => thing.coverArtDimensions),
-
-    coverArtistNames:
-      track.referencedArtworks
-        .map(({thing}) =>
-          thing.coverArtistContribs
-            .map(contrib => contrib.artist.name)),
   }),
 
   generate: (data, relations, {html, language}) =>
-    language.encapsulate('trackReferencedArtworksPage', pageCapsule =>
-      relations.layout.slots({
-        title:
-          language.$(pageCapsule, 'title', {
-            track:
-              data.name,
-          }),
-
-        subtitle:
-          language.$(pageCapsule, 'subtitle'),
-
-        color: data.color,
-        styleRules: [relations.albumStyleRules],
-
-        cover:
-          relations.cover
-            .slot('mode', 'primary-artists'),
-
-        mainClasses: ['top-index'],
-        mainContent: [
-          html.tag('p', {class: 'quick-info'},
-            language.$(pageCapsule, 'statsLine', {
-              artworks:
-                language.countArtworks(data.count, {
-                  unit: true,
-                }),
-            })),
-
-          relations.coverGrid.slots({
-            links: relations.links,
-            names: data.names,
+    relations.page.slots({
+      title:
+        language.$('trackPage.title', {
+          track:
+            data.name,
+        }),
 
-            images:
-              stitchArrays({
-                image: relations.images,
-                path: data.paths,
-                dimensions: data.dimensions,
-              }).map(({image, path, dimensions}) =>
-                  image.slots({
-                    path,
-                    dimensions,
-                  })),
+      color: data.color,
+      styleRules: [relations.albumStyleRules],
 
-            info:
-              data.coverArtistNames.map(names =>
-                language.$('misc.coverGrid.details.coverArtists', {
-                  artists:
-                    language.formatUnitList(names),
-                })),
-          }),
-        ],
+      cover: relations.cover,
 
-        navLinkStyle: 'hierarchical',
-        navLinks:
-          html.resolve(
-            relations.navLinks
-              .slot('currentExtra', 'referenced-art')),
+      navLinks:
+        html.resolve(
+          relations.navLinks
+            .slot('currentExtra', 'referenced-art')),
 
-        navBottomRowContent: relations.backToTrackLink,
-      })),
+      navBottomRowContent: relations.backToTrackLink,
+    }),
 };