summaryrefslogtreecommitdiff
path: root/client-web/source/chat.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client-web/source/chat.ts')
-rw-r--r--client-web/source/chat.ts11
1 files changed, 11 insertions, 0 deletions
diff --git a/client-web/source/chat.ts b/client-web/source/chat.ts
index a28f6c7..6025878 100644
--- a/client-web/source/chat.ts
+++ b/client-web/source/chat.ts
@@ -16,6 +16,11 @@ import { User } from "./user/mod.ts";
export let GLOBAL_CHAT: Chat;
+interface ControlMessage {
+ join?: User,
+ leave?: User,
+}
+
export class Chat {
messages: HTMLElement
controls: HTMLElement
@@ -77,6 +82,12 @@ export class Chat {
this.messages.firstChild?.remove()
}
+ add_control_message(m: ControlMessage) {
+ const el = e("div", { class: ["message", "control-message"] }, e("span", { class: "author" }, m.join?.display_name ?? m.leave?.display_name ?? ""), ` ${m.join ? "joined" : "left"} the room.`)
+ this.messages.append(el)
+ el.scrollIntoView({ block: "end", behavior: "smooth", inline: "end" })
+ }
+
add_message(sender: User, message: ChatMessage) {
const els = []
if (message.text) els.push(e("span", { class: "text" }, message.text))