« get me outta code hell

content: generateReleaseInfoContributionsLine - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateAlbumInfoPage.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-06-08 10:54:53 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-06-08 10:54:53 -0300
commit957f9b83171011f2da63f2e0880be30a4dc0d978 (patch)
tree43c09ea80e1b7f996c91d3d443cad6bbafd2bc3c /src/content/dependencies/generateAlbumInfoPage.js
parentc36d6b999a554733ad4f3397f8047eb9f40db95e (diff)
content: generateReleaseInfoContributionsLine
Diffstat (limited to 'src/content/dependencies/generateAlbumInfoPage.js')
-rw-r--r--src/content/dependencies/generateAlbumInfoPage.js62
1 files changed, 24 insertions, 38 deletions
diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js
index 1e8fa19..e317adb 100644
--- a/src/content/dependencies/generateAlbumInfoPage.js
+++ b/src/content/dependencies/generateAlbumInfoPage.js
@@ -16,11 +16,11 @@ export default {
     'generateColorStyleRules',
     'generateContentHeading',
     'generatePageLayout',
+    'generateReleaseInfoContributionsLine',
     'linkAlbum',
     'linkAlbumCommentary',
     'linkAlbumGallery',
     'linkArtist',
-    'linkContribution',
     'linkExternal',
     'linkTrack',
     'transformContent',
@@ -71,37 +71,26 @@ export default {
     relations.sidebar =
       relation('generateAlbumSidebar', album, null);
 
-    const contributionLinksRelation = contribs =>
-      contribs.map(contrib =>
-        relation('linkContribution', contrib.who, contrib.what));
+    if (album.hasCoverArt) {
+      relations.cover =
+        relation('generateAlbumCoverArtwork', album);
+    }
 
     // Section: Release info
 
     const releaseInfo = sections.releaseInfo = {};
 
-    if (!empty(album.artistContribs)) {
-      releaseInfo.artistContributionLinks =
-        contributionLinksRelation(album.artistContribs);
-    }
+    releaseInfo.artistContributionsLine =
+      relation('generateReleaseInfoContributionsLine', album.artistContribs);
 
-    if (album.hasCoverArt) {
-      relations.cover =
-        relation('generateAlbumCoverArtwork', album);
-      releaseInfo.coverArtistContributionLinks =
-        contributionLinksRelation(album.coverArtistContribs);
-    } else {
-      relations.cover = null;
-    }
+    releaseInfo.coverArtistContributionsLine =
+      relation('generateReleaseInfoContributionsLine', album.coverArtistContribs);
 
-    if (album.hasWallpaperArt) {
-      releaseInfo.wallpaperArtistContributionLinks =
-        contributionLinksRelation(album.wallpaperArtistContribs);
-    }
+    releaseInfo.wallpaperArtistContributionsLine =
+      relation('generateReleaseInfoContributionsLine', album.wallpaperArtistContribs);
 
-    if (album.hasBannerArt) {
-      releaseInfo.bannerArtistContributionLinks =
-        contributionLinksRelation(album.bannerArtistContribs);
-    }
+    releaseInfo.bannerArtistContributionsLine =
+      relation('generateReleaseInfoContributionsLine', album.bannerArtistContribs);
 
     // Section: Listen on
 
@@ -189,16 +178,6 @@ export default {
   generate(data, relations, {html, language}) {
     const {sections: sec} = relations;
 
-    const formatContributions =
-      (stringKey, contributionLinks, {showContribution = true, showIcons = true} = {}) =>
-        contributionLinks &&
-          language.$(stringKey, {
-            artists:
-              language.formatConjunctionList(
-                contributionLinks.map(link =>
-                  link.slots({showContribution, showIcons}))),
-          });
-
     return relations.layout
       .slots({
         title: language.$('albumPage.title', {album: data.name}),
@@ -221,10 +200,17 @@ export default {
               [html.joinChildren]: html.tag('br'),
             },
             [
-              formatContributions('releaseInfo.by', sec.releaseInfo.artistContributionLinks),
-              formatContributions('releaseInfo.coverArtBy', sec.releaseInfo.coverArtistContributionLinks),
-              formatContributions('releaseInfo.wallpaperArtBy', sec.releaseInfo.wallpaperArtistContributionLinks),
-              formatContributions('releaseInfo.bannerArtBy', sec.releaseInfo.bannerArtistContributionLinks),
+              sec.releaseInfo.artistContributionsLine
+                .slots({stringKey: 'releaseInfo.by'}),
+
+              sec.releaseInfo.coverArtistContributionsLine
+                .slots({stringKey: 'releaseInfo.coverArtBy'}),
+
+              sec.releaseInfo.wallpaperArtistContributionsLine
+                .slots({stringKey: 'releaseInfo.wallpaperArtBy'}),
+
+              sec.releaseInfo.bannerArtistContributionsLine
+                .slots({stringKey: 'releasInfo.bannerArtBy'}),
 
               data.date &&
                 language.$('releaseInfo.released', {