Spaces:
Paused
Paused
Mishig
commited on
[Chat input] Fix asian keyboards (#789)
Browse files
src/lib/components/chat/ChatInput.svelte
CHANGED
|
@@ -11,6 +11,7 @@
|
|
| 11 |
|
| 12 |
let innerWidth = 0;
|
| 13 |
let textareaElement: HTMLTextAreaElement;
|
|
|
|
| 14 |
|
| 15 |
const dispatch = createEventDispatcher<{ submit: void }>();
|
| 16 |
|
|
@@ -19,7 +20,7 @@
|
|
| 19 |
|
| 20 |
function handleKeydown(event: KeyboardEvent) {
|
| 21 |
// submit on enter
|
| 22 |
-
if (event.key === "Enter" && !event.shiftKey) {
|
| 23 |
event.preventDefault();
|
| 24 |
dispatch("submit"); // use a custom event instead of `event.target.form.requestSubmit()` as it does not work on Safari 14
|
| 25 |
}
|
|
@@ -50,6 +51,8 @@
|
|
| 50 |
bind:this={textareaElement}
|
| 51 |
{disabled}
|
| 52 |
on:keydown={handleKeydown}
|
|
|
|
|
|
|
| 53 |
on:keypress
|
| 54 |
{placeholder}
|
| 55 |
/>
|
|
|
|
| 11 |
|
| 12 |
let innerWidth = 0;
|
| 13 |
let textareaElement: HTMLTextAreaElement;
|
| 14 |
+
let isCompositionOn = false;
|
| 15 |
|
| 16 |
const dispatch = createEventDispatcher<{ submit: void }>();
|
| 17 |
|
|
|
|
| 20 |
|
| 21 |
function handleKeydown(event: KeyboardEvent) {
|
| 22 |
// submit on enter
|
| 23 |
+
if (event.key === "Enter" && !event.shiftKey && !isCompositionOn) {
|
| 24 |
event.preventDefault();
|
| 25 |
dispatch("submit"); // use a custom event instead of `event.target.form.requestSubmit()` as it does not work on Safari 14
|
| 26 |
}
|
|
|
|
| 51 |
bind:this={textareaElement}
|
| 52 |
{disabled}
|
| 53 |
on:keydown={handleKeydown}
|
| 54 |
+
on:compositionstart={() => (isCompositionOn = true)}
|
| 55 |
+
on:compositionend={() => (isCompositionOn = false)}
|
| 56 |
on:keypress
|
| 57 |
{placeholder}
|
| 58 |
/>
|