@rc-component/util 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,4 +9,6 @@ export declare function getDOM(node: any): HTMLElement | SVGElement | null;
9
9
  */
10
10
  export default function findDOMNode<T = Element | Text>(node: React.ReactInstance | HTMLElement | SVGElement | {
11
11
  nativeElement: T;
12
- }): T;
12
+ } | {
13
+ current: T;
14
+ }): T | null;
@@ -1,5 +1,3 @@
1
- import React from 'react';
2
- import ReactDOM from 'react-dom';
3
1
  export function isDOM(node) {
4
2
  // https://developer.mozilla.org/en-US/docs/Web/API/Element
5
3
  // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement
@@ -27,8 +25,11 @@ export default function findDOMNode(node) {
27
25
  if (domNode) {
28
26
  return domNode;
29
27
  }
30
- if (node instanceof React.Component) {
31
- return ReactDOM.findDOMNode?.(node);
28
+ if (node && typeof node === 'object' && 'current' in node) {
29
+ const refDomNode = getDOM(node.current);
30
+ if (refDomNode) {
31
+ return refDomNode;
32
+ }
32
33
  }
33
34
  return null;
34
35
  }
@@ -9,4 +9,6 @@ export declare function getDOM(node: any): HTMLElement | SVGElement | null;
9
9
  */
10
10
  export default function findDOMNode<T = Element | Text>(node: React.ReactInstance | HTMLElement | SVGElement | {
11
11
  nativeElement: T;
12
- }): T;
12
+ } | {
13
+ current: T;
14
+ }): T | null;
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = findDOMNode;
7
7
  exports.getDOM = getDOM;
8
8
  exports.isDOM = isDOM;
9
- var _react = _interopRequireDefault(require("react"));
10
- var _reactDom = _interopRequireDefault(require("react-dom"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
9
  function isDOM(node) {
13
10
  // https://developer.mozilla.org/en-US/docs/Web/API/Element
14
11
  // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement
@@ -36,8 +33,11 @@ function findDOMNode(node) {
36
33
  if (domNode) {
37
34
  return domNode;
38
35
  }
39
- if (node instanceof _react.default.Component) {
40
- return _reactDom.default.findDOMNode?.(node);
36
+ if (node && typeof node === 'object' && 'current' in node) {
37
+ const refDomNode = getDOM(node.current);
38
+ if (refDomNode) {
39
+ return refDomNode;
40
+ }
41
41
  }
42
42
  return null;
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/util",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Common Utils For React Component",
5
5
  "keywords": [
6
6
  "react",