summaryrefslogtreecommitdiff
path: root/js/channel.js
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-18 22:49:38 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-20 16:42:44 -0400
commit22348bfa35f009e62abe2f30863e0434079a1fe2 (patch)
treec5b5b5e660a1ee2a05785f4669102c1023b6e7b0 /js/channel.js
parentaafdeb9ffaf9a993ca4462b3422667e04469b2e3 (diff)
Remove the HTML client, and expose a JSON API.
This API structure fell out of a conversation with Kit. Described loosely: kit: ok kit: Here's what I'm picturing in a client kit: list channels, make-new-channel, zero to one active channels, post-to-active. kit: login/sign-up, logout owen: you will likely also want "am I logged in" here kit: sure, whoami
Diffstat (limited to 'js/channel.js')
-rw-r--r--js/channel.js37
1 files changed, 0 insertions, 37 deletions
diff --git a/js/channel.js b/js/channel.js
deleted file mode 100644
index f994ada..0000000
--- a/js/channel.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-function ready(callback) {
- if (document.readyState === 'loading') {
- document.addEventListener('DOMContentLoaded', callback);
- } else {
- callback();
- }
-}
-
-ready(() => {
- let channel = document.querySelector('meta[name=channel]').content;
- let template = document.querySelector('#message').content;
-
- document.querySelectorAll('link[rel=events]').forEach(elem => {
- let url = elem.getAttribute("href");
- let source = new EventSource(url);
- source.addEventListener('message', message => {
- let body = JSON.parse(message.data);
-
- if (body.channel === channel) {
- document.querySelectorAll('.messages').forEach(elem => {
- let message = template.cloneNode(true);
-
- message.querySelectorAll('.sender')
- .forEach(elem => elem.textContent = body.sender.name);
- message.querySelectorAll('.message')
- .forEach(elem => elem.textContent = body.body);
- message.querySelectorAll('.sent_at')
- .forEach(elem => elem.textContent = body.sent_at);
-
- message.childNodes.forEach(node => elem.appendChild(node));
- });
- }
- });
- });
-})