From b4422ad6b366c035b93295c630659cfc54c12e8c Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Mon, 21 May 2018 08:30:37 +0200 Subject: [PATCH] Fix invalid ranges in getEventRange (#1849) --- packages/slate-react/src/utils/get-event-range.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/slate-react/src/utils/get-event-range.js b/packages/slate-react/src/utils/get-event-range.js index cc23c9472..5126e9344 100644 --- a/packages/slate-react/src/utils/get-event-range.js +++ b/packages/slate-react/src/utils/get-event-range.js @@ -36,9 +36,17 @@ function getEventRange(event, value) { const text = node.getFirstText() const range = Range.create() - return isPrevious - ? range.moveToEndOf(document.getPreviousText(text.key)) - : range.moveToStartOf(document.getNextText(text.key)) + + if (isPrevious) { + const previousText = document.getPreviousText(text.key) + + if (previousText) { + return range.moveToEndOf(previousText) + } + } + + const nextText = document.getNextText(text.key) + return nextText ? range.moveToStartOf(nextText) : null } // Else resolve a range from the caret position where the drop occured.