Browse Source

refac: message input

Timothy J. Baek 11 months ago
parent
commit
f9351af6a3
1 changed files with 10 additions and 21 deletions
  1. 10 21
      src/lib/components/chat/MessageInput.svelte

+ 10 - 21
src/lib/components/chat/MessageInput.svelte

@@ -810,10 +810,7 @@
 								? $i18n.t('Listening...')
 								: $i18n.t('Send a Message')}
 							bind:value={prompt}
-							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
+							on:keypress={(e) => {
 								if (
 									!$mobile ||
 									!(
@@ -822,28 +819,18 @@
 										navigator.msMaxTouchPoints > 0
 									)
 								) {
-									// Check if Enter is pressed
-									// Check if Shift key is not pressed
+									// Prevent Enter key from creating a new line
 									if (e.key === 'Enter' && !e.shiftKey) {
 										e.preventDefault();
 									}
 
-									const commandOptionButton = [
-										...document.getElementsByClassName('selected-command-option-button')
-									]?.at(-1);
-
-									if (!commandOptionButton) {
-										if (e.key === 'Enter' && !e.shiftKey && prompt !== '') {
-											submitPrompt(prompt, user);
-											return;
-										}
-
-										if (e.key === 'Enter' && e.shiftKey && prompt !== '') {
-											return;
-										}
+									// Submit the prompt when Enter key is pressed
+									if (prompt !== '' && e.key === 'Enter' && !e.shiftKey) {
+										submitPrompt(prompt, user);
 									}
 								}
-
+							}}
+							on:keydown={async (e) => {
 								const isCtrlPressed = e.ctrlKey || e.metaKey; // metaKey is for Cmd key on Mac
 
 								// Check if Ctrl + R is pressed
@@ -904,7 +891,9 @@
 										...document.getElementsByClassName('selected-command-option-button')
 									]?.at(-1);
 
-									if (commandOptionButton) {
+									if (e.shiftKey) {
+										prompt = `${prompt}\n`;
+									} else if (commandOptionButton) {
 										commandOptionButton?.click();
 									} else {
 										document.getElementById('send-message-button')?.click();