From 51ad54fda5c04eb19fdf836213bc1fa9396d6bf1 Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:13:43 +0200 Subject: [PATCH] refactor(camera): unify toggle paths through handleCameraAction - Voice-bar and mobile camera buttons now use the canonical handler (fixes mobile no-op and voice-bar wrong-preset bugs) - Remove dead useLiveKit.toggleCamera - Add _intentionalCameraOff flag with mark/consume helpers --- .../layout/MobileVoiceFullScreen.tsx | 4 +-- .../src/components/voice/VoiceControls.tsx | 17 ++--------- packages/web/src/hooks/useLiveKit.ts | 13 +------- packages/web/src/utils/voiceActions.ts | 30 +++++++++++++++++-- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/web/src/components/layout/MobileVoiceFullScreen.tsx b/packages/web/src/components/layout/MobileVoiceFullScreen.tsx index 72d4073d..5f5811db 100644 --- a/packages/web/src/components/layout/MobileVoiceFullScreen.tsx +++ b/packages/web/src/components/layout/MobileVoiceFullScreen.tsx @@ -8,6 +8,7 @@ import { useContextMenuStore, type ContextMenuItem } from '../../stores/contextM import { buildVoiceModMenuItems, VolumeSliderItem } from '../voice/voiceMenuItems'; import { wsSend } from '../../hooks/useWebSocket'; import { getChannelOrigin } from '../../stores/spaceStore'; +import { handleCameraAction } from '../../utils/voiceActions'; export function MobileVoiceFullScreen() { const popMobileScreen = useUIStore((s) => s.popMobileScreen); @@ -20,7 +21,6 @@ export function MobileVoiceFullScreen() { const isScreenSharing = useVoiceStore((s) => s.isScreenSharing); const toggleMute = useVoiceStore((s) => s.toggleMic); const toggleDeafen = useVoiceStore((s) => s.toggleDeafen); - const toggleCamera = useVoiceStore((s) => s.toggleCamera); const toggleScreenShare = useVoiceStore((s) => s.toggleScreenShare); const leaveVoice = useVoiceStore((s) => s.leaveVoice); const voiceUsers = useVoiceStore((s) => s.voiceUsers); @@ -283,7 +283,7 @@ export function MobileVoiceFullScreen() { {/* Camera */}