diff --git a/.changeset/curly-news-cover.md b/.changeset/curly-news-cover.md new file mode 100644 index 000000000..6bda897e0 --- /dev/null +++ b/.changeset/curly-news-cover.md @@ -0,0 +1,5 @@ +--- +'slate-react': minor +--- + +Check if getBoundingClientRect exist before trying to call bind on it. Makes unit testing experience agains Editable nicer diff --git a/packages/slate-react/src/components/editable.tsx b/packages/slate-react/src/components/editable.tsx index 83522aa94..533845c36 100644 --- a/packages/slate-react/src/components/editable.tsx +++ b/packages/slate-react/src/components/editable.tsx @@ -1691,8 +1691,9 @@ const defaultScrollSelectionIntoView = ( // This was affecting the selection of multiple blocks and dragging behavior, // so enabled only if the selection has been collapsed. if ( - !editor.selection || - (editor.selection && Range.isCollapsed(editor.selection)) + domRange.getBoundingClientRect && + (!editor.selection || + (editor.selection && Range.isCollapsed(editor.selection))) ) { const leafEl = domRange.startContainer.parentElement! leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange)