1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-18 13:11:17 +02:00

Small optimization for deleteBackward/deleteForward

This commit is contained in:
Soreine
2016-10-28 14:58:51 +02:00
parent 2aeaae445e
commit 74695d80f0

View File

@@ -132,18 +132,17 @@ export function deleteBackwardAtRange(transform, range, n = 1, options = {}) {
const { state } = transform const { state } = transform
const { document } = state const { document } = state
const { startKey, focusOffset } = range const { startKey, focusOffset } = range
const text = document.getDescendant(startKey)
const block = document.getClosestBlock(startKey)
const inline = document.getClosestInline(startKey)
if (range.isExpanded) { if (range.isExpanded) {
return transform.deleteAtRange(range, { normalize }) return transform.deleteAtRange(range, { normalize })
} }
const block = document.getClosestBlock(startKey)
if (block && block.isVoid) { if (block && block.isVoid) {
return transform.removeNodeByKey(block.key, { normalize }) return transform.removeNodeByKey(block.key, { normalize })
} }
const inline = document.getClosestInline(startKey)
if (inline && inline.isVoid) { if (inline && inline.isVoid) {
return transform.removeNodeByKey(inline.key, { normalize }) return transform.removeNodeByKey(inline.key, { normalize })
} }
@@ -152,6 +151,7 @@ export function deleteBackwardAtRange(transform, range, n = 1, options = {}) {
return transform return transform
} }
const text = document.getDescendant(startKey)
if (range.isAtStartOf(text)) { if (range.isAtStartOf(text)) {
const prev = document.getPreviousText(text) const prev = document.getPreviousText(text)
const prevBlock = document.getClosestBlock(prev) const prevBlock = document.getClosestBlock(prev)
@@ -197,18 +197,17 @@ export function deleteForwardAtRange(transform, range, n = 1, options = {}) {
const { state } = transform const { state } = transform
const { document } = state const { document } = state
const { startKey, focusOffset } = range const { startKey, focusOffset } = range
const text = document.getDescendant(startKey)
const inline = document.getClosestInline(startKey)
const block = document.getClosestBlock(startKey)
if (range.isExpanded) { if (range.isExpanded) {
return transform.deleteAtRange(range, { normalize }) return transform.deleteAtRange(range, { normalize })
} }
const block = document.getClosestBlock(startKey)
if (block && block.isVoid) { if (block && block.isVoid) {
return transform.removeNodeByKey(block.key, { normalize }) return transform.removeNodeByKey(block.key, { normalize })
} }
const inline = document.getClosestInline(startKey)
if (inline && inline.isVoid) { if (inline && inline.isVoid) {
return transform.removeNodeByKey(inline.key, { normalize }) return transform.removeNodeByKey(inline.key, { normalize })
} }
@@ -217,6 +216,7 @@ export function deleteForwardAtRange(transform, range, n = 1, options = {}) {
return transform return transform
} }
const text = document.getDescendant(startKey)
if (range.isAtEndOf(text)) { if (range.isAtEndOf(text)) {
const next = document.getNextText(text) const next = document.getNextText(text)
const nextBlock = document.getClosestBlock(next) const nextBlock = document.getClosestBlock(next)