From 2d35caa4b3e025a57c626f89c665da31ffbfe27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 15 Mar 2022 01:14:45 +0100 Subject: Introduce concept of VEvent formatters in frontend. --- static/formatters.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 static/formatters.ts (limited to 'static/formatters.ts') diff --git a/static/formatters.ts b/static/formatters.ts new file mode 100644 index 00000000..38c71e5e --- /dev/null +++ b/static/formatters.ts @@ -0,0 +1,29 @@ +export { + formatters, +} + +import { makeElement } from './lib' + +let formatters : Map void>; +formatters = window.formatters = new Map(); + + +formatters.set('categories', (el, d) => { + for (let item of d) { + let q = encodeURIComponent( + `(member "${item}" (or (prop event (quote CATEGORIES)) (quote ())))`) + el.appendChild(makeElement('a', { + textContent: item, + href: `/search/?q=${q}`, + })) + } +}) + +formatters.set('default', (el, d) => { + let fmt; + if ((fmt = el.dataset.fmt)) { + el.textContent = d.format(fmt); + } else { + el.textContent = d; + } +}) -- cgit v1.2.3