« 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/linkThing.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/linkThing.js')
-rw-r--r--src/content/dependencies/linkThing.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/content/dependencies/linkThing.js b/src/content/dependencies/linkThing.js
index 70c86fc4..fea68ae5 100644
--- a/src/content/dependencies/linkThing.js
+++ b/src/content/dependencies/linkThing.js
@@ -35,6 +35,10 @@ export default {
         content: relations.linkTemplate.getSlotDescription('content'),
         preferShortName: {type: 'boolean', default: false},
 
+        tooltip: {
+          validate: v => v.oneOf(v.isBoolean, v.isString),
+        },
+
         color: relations.linkTemplate.getSlotDescription('color'),
         attributes: relations.linkTemplate.getSlotDescription('attributes'),
         hash: relations.linkTemplate.getSlotDescription('hash'),
@@ -43,20 +47,30 @@ export default {
       content(slots) {
         let content = slots.content;
 
+        const name =
+          (slots.preferShortName
+            ? data.nameShort ?? data.name
+            : data.name);
+
         if (html.isBlank(content)) {
-          content =
-            (slots.preferShortName
-              ? data.nameShort ?? data.name
-              : data.name);
+          content = name;
         }
 
         const color = slots.color ?? data.color ?? null;
 
+        let tooltip = null;
+        if (slots.tooltip === true) {
+          tooltip = name;
+        } else if (typeof slots.tooltip === 'string') {
+          tooltip = slots.tooltip;
+        }
+
         return relations.linkTemplate
           .slots({
             path,
             content,
             color,
+            tooltip,
 
             attributes: slots.attributes,
             hash: slots.hash,