From 287875b9e364a00650e8db456ddcc9fce4667af7 Mon Sep 17 00:00:00 2001 From: ldavidpace Date: Tue, 4 Dec 2018 12:08:45 -0700 Subject: [PATCH] Checking to make sure there is only text in the node before removing the whole node on deleteBackward (#2476) * Checking to make sure there is only text in the node before removing the whole node. * Make it Prettier --- packages/slate/src/commands/at-range.js | 7 +++- .../empty-after-multiple-void-blocks.js | 32 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js diff --git a/packages/slate/src/commands/at-range.js b/packages/slate/src/commands/at-range.js index 9a84d6da1..507fd47f6 100644 --- a/packages/slate/src/commands/at-range.js +++ b/packages/slate/src/commands/at-range.js @@ -312,7 +312,12 @@ Commands.deleteBackwardAtRange = (editor, range, n = 1) => { // PERF: If the closest block is empty, remove it. This is just a shortcut, // since merging it would result in the same outcome. - if (document.nodes.size !== 1 && block && block.text === '') { + if ( + document.nodes.size !== 1 && + block && + block.text === '' && + block.nodes.size === 1 + ) { editor.removeNodeByKey(block.key) return } diff --git a/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js b/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js new file mode 100644 index 000000000..228f5d6a9 --- /dev/null +++ b/packages/slate/test/commands/at-current-range/delete-backward/empty-after-multiple-void-blocks.js @@ -0,0 +1,32 @@ +/** @jsx h */ + +import h from '../../../helpers/h' + +export default function(editor) { + editor.deleteBackward() +} + +export const input = ( + + + + + + + + + + +) + +export const output = ( + + + + + + + + + +)