aboutsummaryrefslogtreecommitdiff
path: root/client-web
diff options
context:
space:
mode:
Diffstat (limited to 'client-web')
-rw-r--r--client-web/makefile10
-rw-r--r--client-web/public/app.html24
-rw-r--r--client-web/source/index.ts6
-rw-r--r--client-web/source/keybinds.ts2
-rw-r--r--client-web/source/menu.ts2
5 files changed, 25 insertions, 19 deletions
diff --git a/client-web/makefile b/client-web/makefile
index 2623c6e..2ff29d5 100644
--- a/client-web/makefile
+++ b/client-web/makefile
@@ -1,12 +1,14 @@
+ESFLAGS = --bundle --target=esnext --format=esm
+
.PHONY: all watch
all: public/assets/bundle.js public/assets/sw.js public/assets/font/include.css
watch:
- deno bundle --no-check --watch source/index.ts public/assets/bundle.js &
- deno bundle --no-check --watch source/sw/worker.ts public/assets/sw.js
+ esbuild $(ESFLAGS) source/index.ts --outfile=public/assets/bundle.js --watch=forever &
+ esbuild $(ESFLAGS) source/sw/worker.ts --outfile=public/assets/sw.js --watch=forever
public/assets/bundle.js: $(shell find source -type f -name '*.ts')
- deno bundle --no-check --unstable source/index.ts > $@
+ esbuild $(ESFLAGS) source/index.ts --outfile=$@
public/assets/sw.js: $(shell find source/sw -type f -name '*.ts')
- deno bundle --no-check --unstable source/sw/worker.ts > $@
+ esbuild $(ESFLAGS) source/sw/worker.ts --outfile=$@
public/assets/font/include.css:
mkdir -p public/assets/font
curl 'https://s.metamuffin.org/static/font-ubuntu.tar' | tar -xC public/assets/font
diff --git a/client-web/public/app.html b/client-web/public/app.html
index d121be2..66062d9 100644
--- a/client-web/public/app.html
+++ b/client-web/public/app.html
@@ -3,20 +3,26 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="description" content="A simple secure web conferencing application using webrtc">
+ <meta
+ name="description"
+ content="A simple secure web conferencing application using webrtc"
+ />
<script async type="module" src="/assets/bundle.js"></script>
<link rel="stylesheet" href="/assets/style/master.css" />
<title>keks-meet</title>
</head>
<body>
- <p>
- keks-meet needs evil javascript to be enabled. Don't be afraid
- though, all the code is free (AGPL-3.0-only)! Look at it on
- <a href="https://codeberg.org/metamuffin/keks-meet">codeberg</a>
- </p>
- <p>
- If you have JS enabled, check the browser console to see if
- something else failed
+ <noscript>
+ <p>
+ keks-meet needs evil javascript to be enabled. Don't be afraid
+ though, all the code is free (AGPL-3.0-only)! Look at it on
+ <a href="https://codeberg.org/metamuffin/keks-meet">codeberg</a>
+ </p>
+ </noscript>
+ <h1 class="loading">keks-meet is loading, please wait…</h1>
+ <p class="loading">
+ If this takes too long check your browser's console to see if
+ something else failed.
</p>
</body>
</html>
diff --git a/client-web/source/index.ts b/client-web/source/index.ts
index 8da99ea..84a86e9 100644
--- a/client-web/source/index.ts
+++ b/client-web/source/index.ts
@@ -59,7 +59,7 @@ export async function main() {
const config: ClientConfig = await config_res.json()
log("*", "config loaded. starting")
- document.body.querySelectorAll("p").forEach(e => e.remove())
+ document.body.querySelectorAll(".loading").forEach(e => e.remove())
const room_secret = load_params().rsecret
if (!globalThis.RTCPeerConnection) return log({ scope: "webrtc", error: true }, "WebRTC not supported.")
@@ -84,8 +84,8 @@ export async function main() {
setup_keybinds(r)
r.on_ready = () => {
- new BottomMenu(r).shown = true
- new MenuBr().shown = true
+ new BottomMenu(r)
+ new MenuBr()
}
document.body.prepend(ROOM_CONTAINER, OVERLAYS)
diff --git a/client-web/source/keybinds.ts b/client-web/source/keybinds.ts
index 28bd263..fb17259 100644
--- a/client-web/source/keybinds.ts
+++ b/client-web/source/keybinds.ts
@@ -10,7 +10,6 @@ import { Room } from "./room.ts"
import { update_serviceworker } from "./sw/client.ts";
export function setup_keybinds(room: Room) {
- // let command_mode = false
document.body.addEventListener("keydown", ev => {
// TODO is there a proper solution?
if (ev.target instanceof HTMLInputElement && !(ev.target.type == "button")) return
@@ -27,6 +26,5 @@ export function setup_keybinds(room: Room) {
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()
}
- // command_mode = false
})
}
diff --git a/client-web/source/menu.ts b/client-web/source/menu.ts
index 035f3aa..0df50d8 100644
--- a/client-web/source/menu.ts
+++ b/client-web/source/menu.ts
@@ -67,6 +67,6 @@ export class BottomMenu extends OverlayUi {
ebutton("File", { onclick: () => room.local_user.await_add_resource(create_file_res()) }),
)
- super(enav({ class: "bottom-menu" }, chat_toggle, prefs_button, local_controls))
+ super(enav({ class: "bottom-menu" }, chat_toggle, prefs_button, local_controls), true)
}
}