« get me outta code hell

content, client, css: basic (absolute) datetimestamp tooltips - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateDatetimestampTemplate.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-11-29 17:57:28 -0400
committer(quasar) nebula <qznebula@protonmail.com>2023-11-29 17:57:55 -0400
commita0fa6520c77e46b7a2e55b87e9994df3af74f149 (patch)
tree812480bd7f5d9c8222644f7082adb7d83f74c86b /src/content/dependencies/generateDatetimestampTemplate.js
parente156e337c29558b44e75e2d63494221823c5a9f9 (diff)
content, client, css: basic (absolute) datetimestamp tooltips
Diffstat (limited to 'src/content/dependencies/generateDatetimestampTemplate.js')
-rw-r--r--src/content/dependencies/generateDatetimestampTemplate.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/content/dependencies/generateDatetimestampTemplate.js b/src/content/dependencies/generateDatetimestampTemplate.js
new file mode 100644
index 0000000..bfba647
--- /dev/null
+++ b/src/content/dependencies/generateDatetimestampTemplate.js
@@ -0,0 +1,28 @@
+export default {
+  extraDependencies: ['html'],
+
+  slots: {
+    mainContent: {type: 'html'},
+    tooltipContent: {type: 'html'},
+    datetime: {type: 'string'},
+  },
+
+  generate: (slots, {html}) =>
+    html.tag('span', {
+      [html.joinChildren]: '',
+
+      class: [
+        'datetimestamp',
+        slots.tooltipContent && 'has-tooltip',
+      ],
+    }, [
+      html.tag('time',
+        {datetime: slots.datetime},
+        slots.mainContent),
+
+      slots.tooltipContent &&
+        html.tag('span', {class: 'datetimestamp-tooltip'},
+          html.tag('span', {class: 'datetimestamp-tooltip-content'},
+            slots.tooltipContent)),
+    ]),
+};