From 9c2d55e8006170eacaf826a8ba126b62dc07cdd3 Mon Sep 17 00:00:00 2001 From: kay delaney <45561153+kaydelaney@users.noreply.github.com> Date: Thu, 22 Aug 2019 03:41:21 +0100 Subject: [PATCH] deleteBackwardAtRange now works when offset is equal to n (#2966) * deleteBackwardAtRange now works when offset is equal to n Closes #2965 * Adds test to verify behaviour of `deleteBackwardAtRange` when offset===length --- packages/slate/src/commands/at-range.js | 2 +- .../delete-backward-at-range/from-offset.js | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js diff --git a/packages/slate/src/commands/at-range.js b/packages/slate/src/commands/at-range.js index e26f8c032..1a09f74e3 100644 --- a/packages/slate/src/commands/at-range.js +++ b/packages/slate/src/commands/at-range.js @@ -367,7 +367,7 @@ Commands.deleteBackwardAtRange = (editor, range, n = 1) => { // If the focus offset is farther than the number of characters to delete, // just remove the characters backwards inside the current node. - if (n < focus.offset) { + if (n <= focus.offset) { range = range.moveFocusBackward(n) editor.deleteAtRange(range) return diff --git a/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js b/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js new file mode 100644 index 000000000..c6a3704e4 --- /dev/null +++ b/packages/slate/test/commands/at-range/delete-backward-at-range/from-offset.js @@ -0,0 +1,38 @@ +/** @jsx h */ + +import { Point, Range } from 'slate' + +import h from '../../../helpers/h' + +export default function(editor) { + const { key } = editor.value.document.getFirstText() + const range = new Range({ + anchor: new Point({ key, offset: 2, path: [key] }), + focus: new Point({ key, offset: 2, path: [key] }), + }) + editor.deleteBackwardAtRange(range, 2) +} + +export const input = ( + + + + + Sample Text + + + + +) + +export const output = ( + + + + + mple Text + + + + +)