From eb7f598707ab9a4f1bd62fd195719049e9536be0 Mon Sep 17 00:00:00 2001 From: Old_dream Date: Tue, 13 Jun 2023 06:20:22 +0800 Subject: [PATCH] fix: caret jump to the start of composition string (#5443) * fix: caret jump to the start of composition str * chore: add changeset * chore: edit changeset --------- Co-authored-by: huangyuning --- .changeset/rare-glasses-tickle.md | 5 +++++ packages/slate-react/src/components/editable.tsx | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/rare-glasses-tickle.md diff --git a/.changeset/rare-glasses-tickle.md b/.changeset/rare-glasses-tickle.md new file mode 100644 index 000000000..43edb385a --- /dev/null +++ b/.changeset/rare-glasses-tickle.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +fix wrong caret position during composition. diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 927b74a0e..252bf94f0 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -366,7 +366,9 @@ export const Editable = (props: EditableProps) => { selection && ReactEditor.toDOMRange(editor, selection) if (newDomRange) { - if (Range.isBackward(selection!)) { + if (ReactEditor.isComposing(editor)) { + domSelection.collapseToEnd() + } else if (Range.isBackward(selection!)) { domSelection.setBaseAndExtent( newDomRange.endContainer, newDomRange.endOffset,