diff --git a/client/components/ContextMenu.jsx b/client/components/ContextMenu.jsx index 5df7aae2..1a8ac0c0 100644 --- a/client/components/ContextMenu.jsx +++ b/client/components/ContextMenu.jsx @@ -2,6 +2,7 @@ import {h, Component} from 'preact'; import cls from 'classnames'; import {store} from '../store'; +import {elementIsOutside} from '../utils'; import s from './ContextMenu.css'; @@ -80,7 +81,7 @@ export default class ContextMenu extends Component { } handleDocumentMousedown = (e) => { - if (!this.node.contains(e.target)) { + if (elementIsOutside(e.target, this.node)) { e.preventDefault(); e.stopPropagation(); this.hide(); diff --git a/client/utils.js b/client/utils.js index ef5290b5..9ef1cbed 100644 --- a/client/utils.js +++ b/client/utils.js @@ -13,3 +13,7 @@ export function walkModules(modules, cb) { } } } + +export function elementIsOutside(elem, container) { + return !(elem === container || container.contains(elem)); +}