From 0c01d548b6120cb8e1a31eeac537b56ba955360e Mon Sep 17 00:00:00 2001 From: leondt <168417370+leondt1@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:12:10 +0000 Subject: [PATCH 1/3] fix: Prevent domSelection.collapseToEnd crash in setDomSelection --- packages/slate-react/src/components/editable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 2988208a9a..17ab4d3477 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -416,7 +416,7 @@ export const Editable = forwardRef( selection && ReactEditor.toDOMRange(editor, selection) if (newDomRange) { - if (ReactEditor.isComposing(editor) && !IS_ANDROID) { + if (ReactEditor.isComposing(editor) && domSelection.type !== 'None' && !IS_ANDROID) { domSelection.collapseToEnd() } else if (Range.isBackward(selection!)) { domSelection.setBaseAndExtent( From e54a0f154f6fb8a372486701586225b40e3f7fcc Mon Sep 17 00:00:00 2001 From: leondt <168417370+leondt1@users.noreply.github.com> Date: Mon, 28 Oct 2024 21:11:51 +0800 Subject: [PATCH 2/3] Create healthy-lizards-clap.md --- .changeset/healthy-lizards-clap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/healthy-lizards-clap.md diff --git a/.changeset/healthy-lizards-clap.md b/.changeset/healthy-lizards-clap.md new file mode 100644 index 0000000000..cb2a871568 --- /dev/null +++ b/.changeset/healthy-lizards-clap.md @@ -0,0 +1,5 @@ +--- +"slate-react": patch +--- + +fix: Prevent domSelection.collapseToEnd crash in setDomSelection From 5b25ed991ecfd57ab7e193457eb14446c95f8c3a Mon Sep 17 00:00:00 2001 From: leondt <168417370+leondt1@users.noreply.github.com> Date: Tue, 26 Nov 2024 02:53:48 +0000 Subject: [PATCH 3/3] fix: fix eslint problem --- packages/slate-react/src/components/editable.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 17ab4d3477..a1ba82e32d 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -416,7 +416,11 @@ export const Editable = forwardRef( selection && ReactEditor.toDOMRange(editor, selection) if (newDomRange) { - if (ReactEditor.isComposing(editor) && domSelection.type !== 'None' && !IS_ANDROID) { + if ( + ReactEditor.isComposing(editor) && + hasDomSelection && + !IS_ANDROID + ) { domSelection.collapseToEnd() } else if (Range.isBackward(selection!)) { domSelection.setBaseAndExtent(