diff options
Diffstat (limited to 'client-web')
-rw-r--r-- | client-web/makefile | 10 | ||||
-rw-r--r-- | client-web/public/app.html | 24 | ||||
-rw-r--r-- | client-web/source/index.ts | 6 | ||||
-rw-r--r-- | client-web/source/keybinds.ts | 2 | ||||
-rw-r--r-- | client-web/source/menu.ts | 2 |
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) } } |