From a3dfb151d432ec67f10847997fc71b009bcf5c00 Mon Sep 17 00:00:00 2001 From: Vsevolod Rodionov Date: Wed, 19 Jan 2022 17:53:26 +0300 Subject: [PATCH] Fix: when switching between editors, Slate selection and DOM Selection can mismatch which causes React to break (#4749) --- .changeset/shiny-eagles-swim.md | 5 +++++ packages/slate-react/src/components/editable.tsx | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/shiny-eagles-swim.md diff --git a/.changeset/shiny-eagles-swim.md b/.changeset/shiny-eagles-swim.md new file mode 100644 index 000000000..8f74f837c --- /dev/null +++ b/.changeset/shiny-eagles-swim.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +Fix "cannot resolve DOM point" error when switching between multiple errors diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 12d9ccf55..0d0ddea9f 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -214,7 +214,10 @@ export const Editable = (props: EditableProps) => { // Otherwise the DOM selection is out of sync, so update it. state.isUpdatingSelection = true - const newDomRange = selection && ReactEditor.toDOMRange(editor, selection) + const newDomRange = + selection && + hasDomSelectionInEditor && + ReactEditor.toDOMRange(editor, selection) if (newDomRange) { if (Range.isBackward(selection!)) {