aboutsummaryrefslogtreecommitdiff
path: root/client-web/source
diff options
context:
space:
mode:
Diffstat (limited to 'client-web/source')
-rw-r--r--client-web/source/chat.ts7
-rw-r--r--client-web/source/keybinds.ts2
2 files changed, 9 insertions, 0 deletions
diff --git a/client-web/source/chat.ts b/client-web/source/chat.ts
index 9a1af1a..cfcbe64 100644
--- a/client-web/source/chat.ts
+++ b/client-web/source/chat.ts
@@ -14,6 +14,8 @@ import { Room } from "./room.ts";
import { LocalUser } from "./user/local.ts";
import { User } from "./user/mod.ts";
+export let GLOBAL_CHAT: Chat;
+
export class Chat {
messages: HTMLElement
controls: HTMLElement
@@ -21,6 +23,7 @@ export class Chat {
element: HTMLElement
constructor(public room: Room) {
+ GLOBAL_CHAT = this;
const send = document.createElement("input")
send.ariaLabel = "send message"
send.type = "text"
@@ -71,6 +74,10 @@ export class Chat {
this.add_message(this.room.local_user, msg)
}
+ remove_oldest_message() {
+ this.messages.firstChild?.remove()
+ }
+
add_message(sender: User, message: ChatMessage) {
const els = []
if (message.text) els.push(e("span", { class: "text" }, message.text))
diff --git a/client-web/source/keybinds.ts b/client-web/source/keybinds.ts
index 83e05b8..dfc04b4 100644
--- a/client-web/source/keybinds.ts
+++ b/client-web/source/keybinds.ts
@@ -5,6 +5,7 @@
*/
/// <reference lib="dom" />
+import { GLOBAL_CHAT } from "./chat.ts";
import { chat_control } from "./menu.ts";
import { create_camera_res, create_mic_res, create_screencast_res } from "./resource/track.ts";
import { Room } from "./room.ts"
@@ -25,6 +26,7 @@ export function setup_keybinds(room: Room) {
if (ev.code == "KeyC" && !ev.ctrlKey) room.local_user.await_add_resource(create_camera_res())
if (ev.code == "KeyC" && ev.ctrlKey) room.local_user.resources.forEach(t => t.destroy())
if (ev.code == "KeyU") if (window.confirm("really update?")) update_serviceworker()
+ if (ev.code == "KeyV") GLOBAL_CHAT.remove_oldest_message()
}
})
}