From fe04c4c52c26a833455dac34cd502bdf404026d3 Mon Sep 17 00:00:00 2001 From: mplorentz Date: Thu, 26 Mar 2026 10:49:14 -0400 Subject: [PATCH] add video to livekit calls --- src/app.css | 4 +- src/app/components/VideoCallContent.svelte | 131 +++++++++++++++++ src/app/components/VideoCallVideo.svelte | 27 ++++ src/app/components/VoiceWidget.svelte | 16 ++- src/app/voice.ts | 86 ++++++++++- src/lib/components/PageContent.svelte | 7 +- src/routes/spaces/[relay]/[h]/+layout.svelte | 11 +- src/routes/spaces/[relay]/[h]/+page.svelte | 144 ++++++++++++++++++- 8 files changed, 411 insertions(+), 15 deletions(-) create mode 100644 src/app/components/VideoCallContent.svelte create mode 100644 src/app/components/VideoCallVideo.svelte diff --git a/src/app.css b/src/app.css index 9916ff0a..ab733efb 100644 --- a/src/app.css +++ b/src/app.css @@ -400,7 +400,7 @@ progress[value]::-webkit-progress-value { transition: width 0.5s; } -/* content width for fixed elements */ +/* Anchors for fixed overlays (compose, search, reply) — main scroll lives in Page / PageContent flow */ .left-content { @apply md:left-[calc(18.5rem+var(--sail))]; @@ -415,7 +415,7 @@ body.keyboard-open .hide-on-keyboard { /* chat view */ .chat__compose { - @apply z-compose relative mb-14 grow md:mb-0; + @apply relative z-compose mb-14 shrink-0 md:mb-0; } .chat__compose .chat__compose-inner { diff --git a/src/app/components/VideoCallContent.svelte b/src/app/components/VideoCallContent.svelte new file mode 100644 index 00000000..1da29813 --- /dev/null +++ b/src/app/components/VideoCallContent.svelte @@ -0,0 +1,131 @@ + + +{#if showPanel && (showTileGrid || allowEmptyPanel)} + +{/if} diff --git a/src/app/components/VideoCallVideo.svelte b/src/app/components/VideoCallVideo.svelte new file mode 100644 index 00000000..fbc3af89 --- /dev/null +++ b/src/app/components/VideoCallVideo.svelte @@ -0,0 +1,27 @@ + + + diff --git a/src/app/components/VoiceWidget.svelte b/src/app/components/VoiceWidget.svelte index 1ed8356e..64375bc9 100644 --- a/src/app/components/VoiceWidget.svelte +++ b/src/app/components/VoiceWidget.svelte @@ -6,6 +6,8 @@ import {displayRelayUrl} from "@welshman/util" import Microphone from "@assets/icons/microphone.svg?dataurl" import MicrophoneOff from "@assets/icons/microphone-off.svg?dataurl" + import Videocamera from "@assets/icons/videocamera.svg?dataurl" + import VideocameraRecord from "@assets/icons/videocamera-record.svg?dataurl" import PhoneRounded from "@assets/icons/phone-rounded.svg?dataurl" import PhoneCallingRounded from "@assets/icons/phone-calling-rounded.svg?dataurl" import CloseCircle from "@assets/icons/close-circle.svg?dataurl" @@ -31,6 +33,7 @@ voiceState, leaveVoiceRoom, toggleMute, + toggleCamera, cancelJoinVoiceRoom, } from "@app/voice" @@ -107,9 +110,16 @@ + + + + + {/if}