UNPKG

rc-util

Version:
36 lines (34 loc) 1.09 kB
import _typeof from "@babel/runtime/helpers/esm/typeof"; import React from 'react'; import ReactDOM from 'react-dom'; export function isDOM(node) { // https://developer.mozilla.org/en-US/docs/Web/API/Element // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement return node instanceof HTMLElement || node instanceof SVGElement; } /** * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`. */ export function getDOM(node) { if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) { return node.nativeElement; } if (isDOM(node)) { return node; } return null; } /** * Return if a node is a DOM node. Else will return by `findDOMNode` */ export default function findDOMNode(node) { var domNode = getDOM(node); if (domNode) { return domNode; } if (node instanceof React.Component) { var _ReactDOM$findDOMNode; return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node); } return null; }