From 78a1d3ed97cd1b0788aad75179d2d5c3509f5590 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 28 Aug 2020 16:31:15 +0200 Subject: [PATCH] Prevent errors on body hover. Closes #2974 --- src/commands/view/SelectComponent.js | 6 +++--- src/utils/dom.js | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index a7c80d2a9..6f86b63c2 100644 --- a/src/commands/view/SelectComponent.js +++ b/src/commands/view/SelectComponent.js @@ -7,7 +7,7 @@ import { isTaggableNode, getViewEl } from 'utils/mixins'; -import { isVisible } from 'utils/dom'; +import { isVisible, isDoc } from 'utils/dom'; import ToolbarView from 'dom_components/view/ToolbarView'; import Toolbar from 'dom_components/model/Toolbar'; @@ -116,7 +116,7 @@ export default { // Get first valid model if (!model) { let parent = $el.parent(); - while (!model && parent.length > 0) { + while (!model && parent.length && !isDoc(parent[0])) { model = parent.data('model'); parent = parent.parent(); } @@ -292,7 +292,7 @@ export default { if (!model) { let parent = $el.parent(); - while (!model && parent.length > 0) { + while (!model && parent.length && !isDoc(parent[0])) { model = parent.data('model'); parent = parent.parent(); } diff --git a/src/utils/dom.js b/src/utils/dom.js index 512e86e6f..2b57785e9 100644 --- a/src/utils/dom.js +++ b/src/utils/dom.js @@ -8,6 +8,8 @@ const KEY_CHILD = 'children'; export const motionsEv = 'transitionend oTransitionEnd transitionend webkitTransitionEnd'; +export const isDoc = el => el && el.nodeType === 9; + export const isVisible = el => { return ( el && !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)