From da030e6a81f1444be92c503983c11c5203f21e3d Mon Sep 17 00:00:00 2001 From: Petyo Ivanov Date: Mon, 22 Aug 2022 12:49:08 +0300 Subject: [PATCH] fix: prevent double submissions in korean --- src/components/AutoCompleteTextarea/Textarea.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/AutoCompleteTextarea/Textarea.jsx b/src/components/AutoCompleteTextarea/Textarea.jsx index 2374fcadcb..60c40e23ad 100644 --- a/src/components/AutoCompleteTextarea/Textarea.jsx +++ b/src/components/AutoCompleteTextarea/Textarea.jsx @@ -85,7 +85,15 @@ export class ReactTextareaAutocomplete extends React.Component { return this.textareaRef.selectionEnd; }; - _defaultShouldSubmit = (event) => event.key === 'Enter' && !event.shiftKey; + /** + * isComposing prevents double submissions in Korean and other languages. + * starting point for a read: + * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/isComposing + * In the long term, the fix should happen by handling keypress, but changing this has unknown implications. + * @param event React.KeyboardEvent + */ + _defaultShouldSubmit = (event) => + event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing; _handleKeyDown = (event) => { const { shouldSubmit = this._defaultShouldSubmit } = this.props;