From 85220ab75451ec81b8730087e66ad26b2fc5a319 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 17 Apr 2024 10:04:55 +0200 Subject: list users in playersync --- web/script/player/sync.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'web/script') diff --git a/web/script/player/sync.ts b/web/script/player/sync.ts index 3c5e3a2..cc027f1 100644 --- a/web/script/player/sync.ts +++ b/web/script/player/sync.ts @@ -28,7 +28,12 @@ export function playersync_controls(sync_state: OVar, pl navigator.clipboard.writeText(channel_name_copy.value) } }) - )) + ), + e("h4", "Users"), + sync.users.map(users => + e("ul", ...[...users.keys()].map(u => e("li", u))) + ) + ) : e("div", channel_name = e("input", { type: "text", placeholder: "someroom:example.org" }), e("button", "Join", { @@ -64,6 +69,7 @@ export class Playersync { private on_destroy: (() => void)[] = [] public name: string + public users = new OVar(new Map()) private cancel_pers: undefined | (() => void) set_pers(s?: string) { @@ -105,8 +111,16 @@ export class Playersync { } if (packet.playing === true) this.player.play() if (packet.playing === false) this.player.pause() - if (packet.join) this.logger.log(`${packet.join} joined.`) - if (packet.leave) this.logger.log(`${packet.leave} left.`) + if (packet.join) { + this.logger.log(`${packet.join} joined.`) + this.users.value.set(packet.join, null) + this.users.change() + } + if (packet.leave) { + this.logger.log(`${packet.leave} left.`) + this.users.value.delete(packet.leave) + this.users.change() + } } let cb: () => void -- cgit v1.2.3-70-g09d2