From 458c0220131d4880ced98271f903d3e8fa638029 Mon Sep 17 00:00:00 2001 From: David Gertmenian-Wong Date: Tue, 15 Aug 2017 12:23:01 -0700 Subject: [PATCH] When the `isInEditor` parameter is a text node use its parent only if the parent exists (#974) * When the parameter passed to `isInEditor` is a text node use its parent if the parent exists * Add comment on `parentElement` text node browser compatibility --- src/components/content.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/content.js b/src/components/content.js index 22be181fe..ef3f98c7d 100644 --- a/src/components/content.js +++ b/src/components/content.js @@ -251,7 +251,9 @@ class Content extends React.Component { const { element } = this // COMPAT: Text nodes don't have `isContentEditable` property. So, when // `target` is a text node use its parent element for check. - const el = target.nodeType === 3 ? target.parentElement : target + // COMPAT: `parentElement` is not defined on text nodes in certain browsers: + // https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement#Browser_compatibility + const el = (target.nodeType === 3 && target.parentElement) ? target.parentElement : target return ( (el.isContentEditable) && (el === element || findClosestNode(el, '[data-slate-editor]') === element)