Skip to content

Commit

Permalink
Fix infinite loop when inserting a table and editor does not contain …
Browse files Browse the repository at this point in the history
…any element (#1186)

* Fix infinite loop when inserting a table and editor does not contain any element.(#1185)

* upgrade ver
  • Loading branch information
BryanValverdeU authored Aug 16, 2022
1 parent 64e935f commit c0102ad
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "roosterjs",
"version": "8.29.3",
"version": "8.29.4",
"description": "Framework-independent javascript editor",
"repository": {
"type": "git",
Expand Down
31 changes: 17 additions & 14 deletions packages/roosterjs-editor-dom/lib/edit/adjustInsertPosition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -310,25 +310,28 @@ function adjustInsertPositionForTable(
const contentTraverser = ContentTraverser.createSelectionTraverser(root, rangeToTraverse);

let blockElement = contentTraverser && contentTraverser.currentBlockElement;
let nextBlockElement: BlockElement | null = blockElement;

while (!nextBlockElement) {
nextBlockElement = contentTraverser.getNextBlockElement();
if (nextBlockElement) {
blockElement = nextBlockElement;
if (blockElement) {
let nextBlockElement: BlockElement | null = blockElement;

while (!nextBlockElement) {
nextBlockElement = contentTraverser.getNextBlockElement();
if (nextBlockElement) {
blockElement = nextBlockElement;
}
}
}

const prevElement = blockElement?.getEndNode();
const prevElement = blockElement?.getEndNode();

if (prevElement && findClosestElementAncestor(prevElement, root, 'TABLE')) {
let tempRange = createRange(position);
tempRange.collapse(false /* toStart */);
const br = root.ownerDocument.createElement('br');
tempRange.insertNode(br);
if (prevElement && findClosestElementAncestor(prevElement, root, 'TABLE')) {
let tempRange = createRange(position);
tempRange.collapse(false /* toStart */);
const br = root.ownerDocument.createElement('br');
tempRange.insertNode(br);

tempRange = createRange(br);
position = Position.getEnd(tempRange);
tempRange = createRange(br);
position = Position.getEnd(tempRange);
}
}
}

Expand Down

0 comments on commit c0102ad

Please sign in to comment.