« 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/generateWikiHomepageAlbumsRow.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateWikiHomepageAlbumsRow.js')
-rw-r--r--src/content/dependencies/generateWikiHomepageAlbumsRow.js81
1 files changed, 35 insertions, 46 deletions
diff --git a/src/content/dependencies/generateWikiHomepageAlbumsRow.js b/src/content/dependencies/generateWikiHomepageAlbumsRow.js
index 047dca72..4ae48758 100644
--- a/src/content/dependencies/generateWikiHomepageAlbumsRow.js
+++ b/src/content/dependencies/generateWikiHomepageAlbumsRow.js
@@ -43,59 +43,50 @@ export default {
     return sprawl;
   },
 
-  relations(relation, sprawl, row) {
-    const relations = {};
+  relations: (relation, sprawl, row) => ({
+    contentRow:
+      relation('generateWikiHomepageContentRow', row),
 
-    relations.contentRow =
-      relation('generateWikiHomepageContentRow', row);
+    coverGrid:
+      (row.displayStyle === 'grid'
+        ? relation('generateCoverGrid')
+        : null),
 
-    if (row.displayStyle === 'grid') {
-      relations.coverGrid =
-        relation('generateCoverGrid');
-    }
-
-    if (row.displayStyle === 'carousel') {
-      relations.coverCarousel =
-        relation('generateCoverCarousel');
-    }
+    coverCarousel:
+      (row.displayStyle === 'carousel'
+        ? relation('generateCoverCarousel')
+        : null),
 
-    relations.links =
+    links:
       sprawl.albums
-        .map(album => relation('linkAlbum', album));
+        .map(album => relation('linkAlbum', album)),
 
-    relations.images =
+    images:
       sprawl.albums
-        .map(album => relation('image', album.artTags));
-
-    if (row.actionLinks) {
-      relations.actionLinks =
-        row.actionLinks
-          .map(content => relation('transformContent', content));
-    }
+        .map(album => relation('image', album.artTags)),
 
-    return relations;
-  },
-
-  data(sprawl, row) {
-    const data = {};
+    actionLinks:
+      row.actionLinks
+        .map(content => relation('transformContent', content)),
+  }),
 
-    data.displayStyle = row.displayStyle;
+  data: (sprawl, row) => ({
+    displayStyle:
+      row.displayStyle,
 
-    if (row.displayStyle === 'grid') {
-      data.names =
-        sprawl.albums
-          .map(album => album.name);
-    }
+    names:
+      (row.displayStyle === 'grid'
+        ? sprawl.albums
+            .map(album => album.name)
+        : null),
 
-    data.paths =
+    paths:
       sprawl.albums
         .map(album =>
           (album.hasCoverArt
             ? ['media.albumCover', album.directory, album.coverArtFileExtension]
-            : null));
-
-    return data;
-  },
+            : null)),
+  }),
 
   generate(data, relations, {language}) {
     // Grids and carousels share some slots! Very convenient.
@@ -120,13 +111,11 @@ export default {
             }));
 
     commonSlots.actionLinks =
-      (relations.actionLinks
-        ? relations.actionLinks
-            .map(contents =>
-              contents
-                .slot('mode', 'single-link')
-                .content)
-        : null);
+      relations.actionLinks
+        .map(contents =>
+          contents
+            .slot('mode', 'single-link')
+            .content);
 
     let content;