diff options
Diffstat (limited to 'client-web/source/chat.ts')
-rw-r--r-- | client-web/source/chat.ts | 11 |
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)) |