« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/generateArtTagSidebar.js31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/content/dependencies/generateArtTagSidebar.js b/src/content/dependencies/generateArtTagSidebar.js
index 8b6b1a5f..bb93a952 100644
--- a/src/content/dependencies/generateArtTagSidebar.js
+++ b/src/content/dependencies/generateArtTagSidebar.js
@@ -1,4 +1,4 @@
-import {collectTreeLeaves, stitchArrays} from '#sugar';
+import {collectTreeLeaves, empty, stitchArrays} from '#sugar';
 
 export default {
   contentDependencies: [
@@ -35,6 +35,11 @@ export default {
     artTagLink:
       relation('linkArtTagDynamically', artTag),
 
+    directDescendantArtTagLinks:
+      artTag.directDescendantArtTags
+        .map(descendantArtTag =>
+          relation('linkArtTagDynamically', descendantArtTag)),
+
     furthestAncestorArtTagMapLists:
       query.furthestAncestorArtTags
         .map(ancestorArtTag =>
@@ -43,7 +48,9 @@ export default {
             artTag)),
   }),
 
-  data: query => ({
+  data: (query, sprawl, artTag) => ({
+    name: artTag.name,
+
     furthestAncestorArtTagNames:
       query.furthestAncestorArtTags
         .map(ancestorArtTag => ancestorArtTag.name),
@@ -57,6 +64,18 @@ export default {
             html.tag('h1',
               relations.artTagLink),
 
+            !empty(relations.directDescendantArtTagLinks) &&
+              html.tag('details', {class: 'current', open: true}, [
+                html.tag('summary',
+                  html.tag('span',
+                    html.tag('b',
+                      language.sanitize(data.name)))),
+
+                html.tag('ul',
+                  relations.directDescendantArtTagLinks
+                    .map(link => html.tag('li', link))),
+              ]),
+
             stitchArrays({
               name: data.furthestAncestorArtTagNames,
               list: relations.furthestAncestorArtTagMapLists,
@@ -64,7 +83,9 @@ export default {
                 html.tag('details',
                   {
                     class: 'has-tree-list',
-                    open: relations.furthestAncestorArtTagMapLists.length === 1,
+                    open:
+                      empty(relations.directDescendantArtTagLinks) &&
+                      relations.furthestAncestorArtTagMapLists.length === 1,
                   },
                   [
                     html.tag('summary',
@@ -72,8 +93,8 @@ export default {
                         html.tag('b',
                           language.sanitize(name)))),
 
-                    list,
-                  ])),
+                      list,
+                    ])),
           ],
         }),
       ],