@rc-component/trigger 1.5.6 → 1.5.8

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.
@@ -142,6 +142,9 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
142
142
  bottom: clientHeight
143
143
  };
144
144
  (scrollerList || []).forEach(function (ele) {
145
+ if (ele instanceof HTMLBodyElement) {
146
+ return;
147
+ }
145
148
  var eleRect = ele.getBoundingClientRect();
146
149
  var eleOutHeight = ele.offsetHeight,
147
150
  eleInnerHeight = ele.clientHeight,
package/es/index.js CHANGED
@@ -5,10 +5,10 @@ var _excluded = ["prefixCls", "children", "action", "showAction", "hideAction",
5
5
  import Portal from '@rc-component/portal';
6
6
  import classNames from 'classnames';
7
7
  import ResizeObserver from 'rc-resize-observer';
8
+ import { isDOM } from "rc-util/es/Dom/findDOMNode";
8
9
  import useEvent from "rc-util/es/hooks/useEvent";
9
10
  import useId from "rc-util/es/hooks/useId";
10
11
  import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
11
- import { isDOM } from "rc-util/es/Dom/findDOMNode";
12
12
  import * as React from 'react';
13
13
  import TriggerContext from "./context";
14
14
  import useAction from "./hooks/useAction";
@@ -86,12 +86,12 @@ export function generateTrigger() {
86
86
  _React$useState2 = _slicedToArray(_React$useState, 2),
87
87
  popupEle = _React$useState2[0],
88
88
  setPopupEle = _React$useState2[1];
89
- var setPopupRef = React.useCallback(function (node) {
90
- if (isDOM(node)) {
89
+ var setPopupRef = useEvent(function (node) {
90
+ if (isDOM(node) && popupEle !== node) {
91
91
  setPopupEle(node);
92
92
  }
93
93
  parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
94
- }, []);
94
+ });
95
95
 
96
96
  // =========================== Target ===========================
97
97
  // Use state to control here since `useRef` update not trigger render
@@ -99,11 +99,11 @@ export function generateTrigger() {
99
99
  _React$useState4 = _slicedToArray(_React$useState3, 2),
100
100
  targetEle = _React$useState4[0],
101
101
  setTargetEle = _React$useState4[1];
102
- var setTargetRef = React.useCallback(function (node) {
103
- if (isDOM(node)) {
102
+ var setTargetRef = useEvent(function (node) {
103
+ if (isDOM(node) && targetEle !== node) {
104
104
  setTargetEle(node);
105
105
  }
106
- }, []);
106
+ });
107
107
 
108
108
  // ========================== Children ==========================
109
109
  var child = React.Children.only(children);
@@ -150,6 +150,9 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
150
150
  bottom: clientHeight
151
151
  };
152
152
  (scrollerList || []).forEach(function (ele) {
153
+ if (ele instanceof HTMLBodyElement) {
154
+ return;
155
+ }
153
156
  var eleRect = ele.getBoundingClientRect();
154
157
  var eleOutHeight = ele.offsetHeight,
155
158
  eleInnerHeight = ele.clientHeight,
package/lib/index.js CHANGED
@@ -13,10 +13,10 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
13
13
  var _portal = _interopRequireDefault(require("@rc-component/portal"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
16
+ var _findDOMNode = require("rc-util/lib/Dom/findDOMNode");
16
17
  var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
17
18
  var _useId = _interopRequireDefault(require("rc-util/lib/hooks/useId"));
18
19
  var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
19
- var _findDOMNode = require("rc-util/lib/Dom/findDOMNode");
20
20
  var React = _interopRequireWildcard(require("react"));
21
21
  var _context = _interopRequireDefault(require("./context"));
22
22
  var _useAction3 = _interopRequireDefault(require("./hooks/useAction"));
@@ -95,12 +95,12 @@ function generateTrigger() {
95
95
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
96
96
  popupEle = _React$useState2[0],
97
97
  setPopupEle = _React$useState2[1];
98
- var setPopupRef = React.useCallback(function (node) {
99
- if ((0, _findDOMNode.isDOM)(node)) {
98
+ var setPopupRef = (0, _useEvent.default)(function (node) {
99
+ if ((0, _findDOMNode.isDOM)(node) && popupEle !== node) {
100
100
  setPopupEle(node);
101
101
  }
102
102
  parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
103
- }, []);
103
+ });
104
104
 
105
105
  // =========================== Target ===========================
106
106
  // Use state to control here since `useRef` update not trigger render
@@ -108,11 +108,11 @@ function generateTrigger() {
108
108
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
109
109
  targetEle = _React$useState4[0],
110
110
  setTargetEle = _React$useState4[1];
111
- var setTargetRef = React.useCallback(function (node) {
112
- if ((0, _findDOMNode.isDOM)(node)) {
111
+ var setTargetRef = (0, _useEvent.default)(function (node) {
112
+ if ((0, _findDOMNode.isDOM)(node) && targetEle !== node) {
113
113
  setTargetEle(node);
114
114
  }
115
- }, []);
115
+ });
116
116
 
117
117
  // ========================== Children ==========================
118
118
  var child = React.Children.only(children);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/trigger",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "base abstract trigger component for react",
5
5
  "engines": {
6
6
  "node": ">=8.x"