From 895c805e626e59efe48518aca563b4870ba213af Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 23 Feb 2026 02:54:53 -0600 Subject: [PATCH] feat: dictation toggle --- src/lib/components/chat/MessageInput.svelte | 13 +++++++++++++ .../chat/MessageInput/VoiceRecording.svelte | 12 ++++++++++++ src/lib/shortcuts.ts | 6 ++++++ 3 files changed, 31 insertions(+) diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index a0cc2dd010..696c682018 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -824,6 +824,19 @@ shiftKey = true; } + // Cmd/Ctrl+Shift+L to toggle dictation + if (e.key.toLowerCase() === 'l' && (e.metaKey || e.ctrlKey) && e.shiftKey) { + e.preventDefault(); + if (recording) { + // Confirm and stop recording + document.getElementById('confirm-recording-button')?.click(); + } else { + // Start recording (same logic as voice-input-button click) + document.getElementById('voice-input-button')?.click(); + } + return; + } + if (e.key === 'Escape') { console.log('Escape'); dragged = false; diff --git a/src/lib/components/chat/MessageInput/VoiceRecording.svelte b/src/lib/components/chat/MessageInput/VoiceRecording.svelte index 526421daa7..d3dc4cba37 100644 --- a/src/lib/components/chat/MessageInput/VoiceRecording.svelte +++ b/src/lib/components/chat/MessageInput/VoiceRecording.svelte @@ -368,7 +368,17 @@ let maxVisibleItems = 300; $: maxVisibleItems = Math.floor(containerWidth / 5); // 2px width + 0.5px gap + const handleKeyDown = (e) => { + if (e.key === 'Escape') { + e.preventDefault(); + stopRecording(); + onCancel(); + } + }; + onMount(() => { + window.addEventListener('keydown', handleKeyDown); + // listen to width changes resizeObserver = new ResizeObserver(() => { VISUALIZER_BUFFER_LENGTH = Math.floor(window.innerWidth / 4); @@ -385,6 +395,7 @@ }); onDestroy(() => { + window.removeEventListener('keydown', handleKeyDown); // remove resize observer resizeObserver.disconnect(); }); @@ -547,6 +558,7 @@ {:else}