refac: message input

This commit is contained in:
Timothy J. Baek 2024-06-03 12:30:37 -07:00
parent b4fca046a8
commit f9351af6a3

View File

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