« get me outta code hell

content: generateListingPage: "skip to a section" - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/listArtistsByName.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-08-20 22:07:05 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-08-20 22:08:13 -0300
commite035dab576875bca12485f60a1aeb257c394c723 (patch)
treeef995dc8d1bea1a27636c624fe9ee82066a8a3fb /src/content/dependencies/listArtistsByName.js
parent60b6715b38d137f8d6d0ce3c537a546a507ecf1f (diff)
content: generateListingPage: "skip to a section"
Diffstat (limited to 'src/content/dependencies/listArtistsByName.js')
-rw-r--r--src/content/dependencies/listArtistsByName.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/content/dependencies/listArtistsByName.js b/src/content/dependencies/listArtistsByName.js
index d83150e..3778b9e 100644
--- a/src/content/dependencies/listArtistsByName.js
+++ b/src/content/dependencies/listArtistsByName.js
@@ -1,5 +1,10 @@
 import {empty, stitchArrays, unique} from '#sugar';
-import {getArtistNumContributions, sortAlphabetically} from '#wiki-data';
+
+import {
+  filterMultipleArrays,
+  getArtistNumContributions,
+  sortAlphabetically,
+} from '#wiki-data';
 
 export default {
   contentDependencies: ['generateListingPage', 'linkArtist', 'linkGroup'],
@@ -29,6 +34,9 @@ export default {
       groups.map(group =>
         artists.filter((artist, index) => artistGroups[index].includes(group)));
 
+    filterMultipleArrays(groups, artistsByGroup,
+      (group, artists) => !empty(artists));
+
     return {spec, groups, artistsByGroup};
   },
 
@@ -68,6 +76,10 @@ export default {
     }
 
     if (query.artistsByGroup) {
+      data.groupDirectories =
+        query.groups
+          .map(group => group.directory);
+
       data.countsByGroup =
         query.artistsByGroup
           .map(artists => artists
@@ -83,6 +95,11 @@ export default {
         ? relations.page.slots({
             type: 'chunks',
 
+            showSkipToSection: true,
+            chunkIDs:
+              data.groupDirectories
+                .map(directory => `contributed-to-${directory}`),
+
             chunkTitles:
               relations.groupLinks.map(groupLink => ({
                 group: groupLink,