diff --git a/app/custom/VideoConferenceClientImpl.tsx b/app/custom/VideoConferenceClientImpl.tsx index baa6872..819b61a 100644 --- a/app/custom/VideoConferenceClientImpl.tsx +++ b/app/custom/VideoConferenceClientImpl.tsx @@ -13,6 +13,7 @@ import { import { DebugMode } from '@/lib/Debug'; import { useEffect, useMemo } from 'react'; import { decodePassphrase } from '@/lib/client-utils'; +import { KeyboardShortcuts } from '@/lib/KeyboardShortcuts'; import { SettingsMenu } from '@/lib/SettingsMenu'; export function VideoConferenceClientImpl(props: { @@ -39,9 +40,9 @@ export function VideoConferenceClientImpl(props: { dynacast: true, e2ee: e2eeEnabled ? { - keyProvider, - worker, - } + keyProvider, + worker, + } : undefined, }; }, []); @@ -69,6 +70,7 @@ export function VideoConferenceClientImpl(props: { return (
+ + { + function handleShortcut(event: KeyboardEvent) { + // Toggle microphone: Cmd/Ctrl-Shift-A + if (toggleMic && event.key === 'A' && (event.ctrlKey || event.metaKey)) { + event.preventDefault(); + toggleMic(!micEnabled, true); + } + + // Toggle camera: Cmd/Ctrl-Shift-V + if (event.key === 'V' && (event.ctrlKey || event.metaKey)) { + event.preventDefault(); + toggleCamera(!cameraEnabled, true); + } + } + + window.addEventListener('keydown', handleShortcut); + return () => window.removeEventListener('keydown', handleShortcut); + }, [ + toggleMic, micEnabled, + toggleCamera, cameraEnabled, + ]); + + return null; +}