Skip to content

Commit

Permalink
Merge pull request #1086 from microsoft/u/xiameng/fix-empty-range
Browse files Browse the repository at this point in the history
Fix empty range
  • Loading branch information
FrancisMengx authored Jul 14, 2022
2 parents 50b714b + 5c7f5f0 commit 2e9a643
Showing 1 changed file with 17 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EditorPlugin, IEditor, PluginEvent, PluginEventType } from 'roosterjs-editor-types';
import { findClosestElementAncestor, Position } from 'roosterjs-editor-dom';
import { findClosestElementAncestor, getTagOfNode, Position } from 'roosterjs-editor-dom';

/**
* @internal
Expand Down Expand Up @@ -30,6 +30,18 @@ export default class TypeInContainerPlugin implements EditorPlugin {
this.editor = null;
}

private isRangeEmpty(range: Range) {
if (
range.collapsed &&
range.startContainer.nodeType === Node.ELEMENT_NODE &&
getTagOfNode(range.startContainer) == 'DIV' &&
!range.startContainer.firstChild
) {
return true;
}
return false;
}

/**
* Handle events triggered from editor
* @param event PluginEvent object
Expand All @@ -47,9 +59,10 @@ export default class TypeInContainerPlugin implements EditorPlugin {

if (
!range ||
this.editor.contains(
findClosestElementAncestor(range.startContainer, null /* root */, '[style]')
)
(!this.isRangeEmpty(range) &&
this.editor.contains(
findClosestElementAncestor(range.startContainer, null /* root */, '[style]')
))
) {
return;
}
Expand Down

0 comments on commit 2e9a643

Please sign in to comment.