UNPKG

rsuite

Version:

A suite of react components

27 lines (25 loc) 1.39 kB
'use client'; import ReactDOM from 'react-dom'; function safeFindDOMNode(componentOrElement) { if (componentOrElement && 'setState' in componentOrElement) { var _ReactDOM$findDOMNode; // eslint-disable-next-line react/no-find-dom-node return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, componentOrElement); } return componentOrElement !== null && componentOrElement !== void 0 ? componentOrElement : null; } var getRefTarget = function getRefTarget(ref) { return ref && ('current' in ref ? ref.current : ref); }; export function getDOMNode(elementOrRef) { // If elementOrRef is an instance of Position, child is returned. [PositionInstance] var element = (elementOrRef === null || elementOrRef === void 0 ? void 0 : elementOrRef.root) || (elementOrRef === null || elementOrRef === void 0 ? void 0 : elementOrRef.child) || getRefTarget(elementOrRef); // Native HTML elements if (element !== null && element !== void 0 && element.nodeType && typeof (element === null || element === void 0 ? void 0 : element.nodeName) === 'string') { return element; } // If you can't get the native HTML element, you can only get it through findDOMNode. // eslint-disable-next-line react/no-find-dom-node return safeFindDOMNode(element); } export default getDOMNode;