mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-30 10:29:48 +02:00
fix: normalizeNode
(#5311)
* fix * Create large-worms-jog.md * Update large-worms-jog.md * Update large-worms-jog.md * Update large-worms-jog.md * fix
This commit is contained in:
@@ -414,8 +414,8 @@ export const createEditor = (): Editor => {
|
||||
}
|
||||
},
|
||||
|
||||
shouldNormalize: ({ iteration, dirtyPaths }) => {
|
||||
const maxIterations = dirtyPaths.length * 42 // HACK: better way?
|
||||
shouldNormalize: ({ iteration, initialDirtyPathsLength }) => {
|
||||
const maxIterations = initialDirtyPathsLength * 42 // HACK: better way?
|
||||
|
||||
if (iteration > maxIterations) {
|
||||
throw new Error(
|
||||
|
@@ -85,6 +85,7 @@ export interface BaseEditor {
|
||||
operation,
|
||||
}: {
|
||||
iteration: number
|
||||
initialDirtyPathsLength: number
|
||||
dirtyPaths: Path[]
|
||||
operation?: Operation
|
||||
}) => boolean
|
||||
@@ -1072,15 +1073,16 @@ export const Editor: EditorInterface = {
|
||||
}
|
||||
}
|
||||
|
||||
const dirtyPaths = getDirtyPaths(editor)
|
||||
|
||||
let dirtyPaths = getDirtyPaths(editor)
|
||||
const initialDirtyPathsLength = dirtyPaths.length
|
||||
let iteration = 0
|
||||
|
||||
while (getDirtyPaths(editor).length !== 0) {
|
||||
while (dirtyPaths.length !== 0) {
|
||||
if (
|
||||
!editor.shouldNormalize({
|
||||
dirtyPaths,
|
||||
iteration,
|
||||
dirtyPaths: getDirtyPaths(editor),
|
||||
initialDirtyPathsLength,
|
||||
operation,
|
||||
})
|
||||
) {
|
||||
@@ -1095,6 +1097,7 @@ export const Editor: EditorInterface = {
|
||||
editor.normalizeNode(entry, { operation })
|
||||
}
|
||||
iteration++
|
||||
dirtyPaths = getDirtyPaths(editor)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
Reference in New Issue
Block a user