« get me outta code hell

content: generateArtistGroupContributionsInfo: table layout 👻 - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-06-30 20:45:00 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-06-30 20:45:00 -0300
commitda5ba89f4171c395f5e7fa2c764272e7d2de93f3 (patch)
tree51252bb8e85fc6e2867c40393798ef8b9304734e /src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
parent84e1f947c9ac17ab075348ea386d43c17af66435 (diff)
content: generateArtistGroupContributionsInfo: table layout 👻
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js')
-rw-r--r--src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js112
1 files changed, 59 insertions, 53 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
index 8654859..656121c 100644
--- a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
+++ b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
@@ -9,6 +9,7 @@ import {
 export default {
   contentDependencies: [
     'generateArtistInfoPageChunk',
+    'generateArtistInfoPageChunkedList',
     'generateArtistInfoPageChunkItem',
     'generateArtistInfoPageOtherArtistLinks',
     'linkAlbum',
@@ -81,6 +82,9 @@ export default {
 
   relations(relation, query, artist) {
     return {
+      chunkedList:
+        relation('generateArtistInfoPageChunkedList'),
+
       chunks:
         query.chunks.map(() => relation('generateArtistInfoPageChunk')),
 
@@ -120,63 +124,65 @@ export default {
   },
 
   generate(data, relations, {html, language}) {
-    return html.tag('dl',
-      stitchArrays({
-        chunk: relations.chunks,
-        albumLink: relations.albumLinks,
-        date: data.chunkDates,
-
-        items: relations.items,
-        itemTrackLinks: relations.itemTrackLinks,
-        itemOtherArtistLinks: relations.itemOtherArtistLinks,
-        itemTypes: data.itemTypes,
-        itemContributions: data.itemContributions,
-      }).map(({
-          chunk,
-          albumLink,
-          date,
-
-          items,
-          itemTrackLinks,
-          itemOtherArtistLinks,
-          itemTypes,
-          itemContributions,
-        }) =>
-          chunk.slots({
-            mode: 'album',
+    return relations.chunkedList.slots({
+      chunks:
+        stitchArrays({
+          chunk: relations.chunks,
+          albumLink: relations.albumLinks,
+          date: data.chunkDates,
+
+          items: relations.items,
+          itemTrackLinks: relations.itemTrackLinks,
+          itemOtherArtistLinks: relations.itemOtherArtistLinks,
+          itemTypes: data.itemTypes,
+          itemContributions: data.itemContributions,
+        }).map(({
+            chunk,
             albumLink,
             date,
 
-            items:
-              stitchArrays({
-                item: items,
-                trackLink: itemTrackLinks,
-                otherArtistLinks: itemOtherArtistLinks,
-                type: itemTypes,
-                contribution: itemContributions,
-              }).map(({
-                  item,
-                  trackLink,
-                  otherArtistLinks,
-                  type,
-                  contribution,
-                }) =>
-                  item.slots({
+            items,
+            itemTrackLinks,
+            itemOtherArtistLinks,
+            itemTypes,
+            itemContributions,
+          }) =>
+            chunk.slots({
+              mode: 'album',
+              albumLink,
+              date,
+
+              items:
+                stitchArrays({
+                  item: items,
+                  trackLink: itemTrackLinks,
+                  otherArtistLinks: itemOtherArtistLinks,
+                  type: itemTypes,
+                  contribution: itemContributions,
+                }).map(({
+                    item,
+                    trackLink,
                     otherArtistLinks,
+                    type,
                     contribution,
-
-                    content:
-                      (type === 'trackCover'
-                        ? language.$('artistPage.creditList.entry.track', {
-                            track: trackLink,
-                          })
-                        : html.tag('i',
-                            language.$('artistPage.creditList.entry.album.' + {
-                              albumWallpaper: 'wallpaperArt',
-                              albumBanner: 'bannerArt',
-                              albumCover: 'coverArt',
-                            }[type]))),
-                  })),
-          })));
+                  }) =>
+                    item.slots({
+                      otherArtistLinks,
+                      contribution,
+
+                      content:
+                        (type === 'trackCover'
+                          ? language.$('artistPage.creditList.entry.track', {
+                              track: trackLink,
+                            })
+                          : html.tag('i',
+                              language.$('artistPage.creditList.entry.album.' + {
+                                albumWallpaper: 'wallpaperArt',
+                                albumBanner: 'bannerArt',
+                                albumCover: 'coverArt',
+                              }[type]))),
+                    })),
+            })),
+    });
   },
 };