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
+
+
+
+
+)