diff --git a/src/model/immutable/EditorState.js b/src/model/immutable/EditorState.js index 1d833784f7..8f5f547eba 100644 --- a/src/model/immutable/EditorState.js +++ b/src/model/immutable/EditorState.js @@ -652,17 +652,15 @@ function lookUpwardForInlineStyle( content: ContentState, fromKey: string, ): DraftInlineStyle { - var previousBlock = content.getBlockBefore(fromKey); - var previousLength; - - while (previousBlock) { - previousLength = previousBlock.getLength(); - if (previousLength) { - return previousBlock.getInlineStyleAt(previousLength - 1); - } - previousBlock = content.getBlockBefore(previousBlock.getKey()); - } - + var lastNonEmpty = content.getBlockMap() + .reverse() + .skipUntil((_, k) => k === fromKey) + .skip(1) + .skipUntil((block, _) => block.getLength()) + .first(); + + if (lastNonEmpty) + return lastNonEmpty.getInlineStyleAt(lastNonEmpty.getLength() - 1); return OrderedSet(); }