diff --git a/.changeset/flat-carpets-sort.md b/.changeset/flat-carpets-sort.md new file mode 100644 index 000000000..d9fe8e09c --- /dev/null +++ b/.changeset/flat-carpets-sort.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +double ime fix for qq browser diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 6393f1058..8788b32a8 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -21,6 +21,7 @@ import { IS_CHROME, IS_FIREFOX, IS_FIREFOX_LEGACY, + IS_QQBROWSER, IS_SAFARI, } from '../utils/environment' import { ReactEditor } from '..' @@ -714,7 +715,13 @@ export const Editable = (props: EditableProps) => { // aren't correct and never fire the "insertFromComposition" // type that we need. So instead, insert whenever a composition // ends since it will already have been committed to the DOM. - if (!IS_SAFARI && !IS_FIREFOX_LEGACY && !IS_IOS && event.data) { + if ( + !IS_SAFARI && + !IS_FIREFOX_LEGACY && + !IS_IOS && + !IS_QQBROWSER && + event.data + ) { Editor.insertText(editor, event.data) } } diff --git a/packages/slate-react/src/utils/environment.ts b/packages/slate-react/src/utils/environment.ts index 9a64c4062..3dcbab9d2 100644 --- a/packages/slate-react/src/utils/environment.ts +++ b/packages/slate-react/src/utils/environment.ts @@ -39,6 +39,10 @@ export const IS_FIREFOX_LEGACY = navigator.userAgent ) +// qq browser +export const IS_QQBROWSER = + typeof navigator !== 'undefined' && /.*QQBrowser/.test(navigator.userAgent) + // Check if DOM is available as React does internally. // https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js export const CAN_USE_DOM = !!(