« get me outta code hell

content, css, client: inert previous/next links - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2024-08-14 13:03:39 -0300
committer(quasar) nebula <qznebula@protonmail.com>2024-11-02 22:25:46 -0300
commite77262e34657164b5c194d2e639ff4ce627134a9 (patch)
treef64a67f47990bf50bbfa0b78b4b5e65eda7596a2 /src/content/dependencies
parent7c5939aefafc88201eb73ba67a35d4de77c94d7a (diff)
content, css, client: inert previous/next links
Diffstat (limited to 'src/content/dependencies')
-rw-r--r--src/content/dependencies/generatePreviousNextLink.js51
1 files changed, 36 insertions, 15 deletions
diff --git a/src/content/dependencies/generatePreviousNextLink.js b/src/content/dependencies/generatePreviousNextLink.js
index 9fe04aed..1c1bf27c 100644
--- a/src/content/dependencies/generatePreviousNextLink.js
+++ b/src/content/dependencies/generatePreviousNextLink.js
@@ -15,21 +15,42 @@ export default {
       type: 'boolean',
       default: true,
     },
+
+    showWithoutLink: {
+      type: 'boolean',
+      default: true,
+    },
   },
 
-  generate: (slots, {html, language}) =>
-    (html.isBlank(slots.link) || !slots.direction
-      ? html.blank()
-      : slots.link.slots({
-          tooltipStyle: 'browser',
-          color: false,
-
-          attributes:
-            (slots.id
-              ? {id: `${slots.direction}-button`}
-              : null),
-
-          content:
-            language.$('misc.nav', slots.direction),
-        })),
+  generate(slots, {html, language}) {
+    if (!slots.direction) {
+      return html.blank();
+    }
+
+    const attributes = html.attributes();
+
+    if (slots.id) {
+      attributes.set('id', `${slots.direction}-button`);
+    }
+
+    if (html.isBlank(slots.link)) {
+      if (slots.showWithoutLink) {
+        return (
+          html.tag('a', {class: 'inert-previous-next-link'},
+            attributes,
+            language.$('misc.nav', slots.direction)));
+      } else {
+        return html.blank();
+      }
+    }
+
+    return slots.link.slots({
+      tooltipStyle: 'browser',
+      color: false,
+      attributes,
+
+      content:
+        language.$('misc.nav', slots.direction),
+    });
+  },
 };