diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index c78ecffc1..1ede59f2d 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -817,7 +817,10 @@ ? $i18n.t('Listening...') : $i18n.t('Send a Message')} bind:value={prompt} - on:keypress={(e) => { + on:keypress={(e) => {}} + on:keydown={async (e) => { + // Check if the device is not a mobile device or if it is a mobile device, check if it is not a touch device + // This is to prevent the Enter key from submitting the prompt on mobile devices if ( !$mobile || !( @@ -826,15 +829,22 @@ navigator.msMaxTouchPoints > 0 ) ) { - if (e.keyCode == 13 && !e.shiftKey) { + // Check if Enter is pressed + // Check if Shift key is not pressed + if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); } - if (prompt !== '' && e.keyCode == 13 && !e.shiftKey) { + + if (e.key === 'Enter' && !e.shiftKey && prompt !== '') { submitPrompt(prompt, user); + return; + } + + if (e.key === 'Enter' && e.shiftKey && prompt !== '') { + return; } } - }} - on:keydown={async (e) => { + const isCtrlPressed = e.ctrlKey || e.metaKey; // metaKey is for Cmd key on Mac // Check if Ctrl + R is pressed