@rc-component/trigger 1.5.5 → 1.5.7
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.
- package/es/hooks/useAlign.js +6 -2
- package/es/index.js +3 -2
- package/lib/hooks/useAlign.js +6 -2
- package/lib/index.js +3 -2
- package/package.json +2 -2
package/es/hooks/useAlign.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import { isDOM } from "rc-util/es/Dom/findDOMNode";
|
|
3
4
|
import isVisible from "rc-util/es/Dom/isVisible";
|
|
4
5
|
import useEvent from "rc-util/es/hooks/useEvent";
|
|
5
6
|
import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
|
|
@@ -86,7 +87,7 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
|
|
|
86
87
|
var win = getWin(popupElement);
|
|
87
88
|
|
|
88
89
|
// Placement
|
|
89
|
-
var placementInfo = builtinPlacements[placement]
|
|
90
|
+
var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);
|
|
90
91
|
|
|
91
92
|
// Reset first
|
|
92
93
|
popupElement.style.left = '0';
|
|
@@ -141,6 +142,9 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
|
|
|
141
142
|
bottom: clientHeight
|
|
142
143
|
};
|
|
143
144
|
(scrollerList || []).forEach(function (ele) {
|
|
145
|
+
if (ele instanceof HTMLBodyElement) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
144
148
|
var eleRect = ele.getBoundingClientRect();
|
|
145
149
|
var eleOutHeight = ele.offsetHeight,
|
|
146
150
|
eleInnerHeight = ele.clientHeight,
|
|
@@ -167,7 +171,7 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
|
|
|
167
171
|
var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);
|
|
168
172
|
|
|
169
173
|
// No need to align since it's not visible in view
|
|
170
|
-
if (_scaleX === 0 || _scaleY === 0 || target
|
|
174
|
+
if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {
|
|
171
175
|
return;
|
|
172
176
|
}
|
|
173
177
|
|
package/es/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import ResizeObserver from 'rc-resize-observer';
|
|
|
8
8
|
import useEvent from "rc-util/es/hooks/useEvent";
|
|
9
9
|
import useId from "rc-util/es/hooks/useId";
|
|
10
10
|
import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
|
|
11
|
+
import { isDOM } from "rc-util/es/Dom/findDOMNode";
|
|
11
12
|
import * as React from 'react';
|
|
12
13
|
import TriggerContext from "./context";
|
|
13
14
|
import useAction from "./hooks/useAction";
|
|
@@ -86,7 +87,7 @@ export function generateTrigger() {
|
|
|
86
87
|
popupEle = _React$useState2[0],
|
|
87
88
|
setPopupEle = _React$useState2[1];
|
|
88
89
|
var setPopupRef = React.useCallback(function (node) {
|
|
89
|
-
if (node
|
|
90
|
+
if (isDOM(node)) {
|
|
90
91
|
setPopupEle(node);
|
|
91
92
|
}
|
|
92
93
|
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
|
|
@@ -99,7 +100,7 @@ export function generateTrigger() {
|
|
|
99
100
|
targetEle = _React$useState4[0],
|
|
100
101
|
setTargetEle = _React$useState4[1];
|
|
101
102
|
var setTargetRef = React.useCallback(function (node) {
|
|
102
|
-
if (node
|
|
103
|
+
if (isDOM(node)) {
|
|
103
104
|
setTargetEle(node);
|
|
104
105
|
}
|
|
105
106
|
}, []);
|
package/lib/hooks/useAlign.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = useAlign;
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _findDOMNode = require("rc-util/lib/Dom/findDOMNode");
|
|
11
12
|
var _isVisible = _interopRequireDefault(require("rc-util/lib/Dom/isVisible"));
|
|
12
13
|
var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
|
|
13
14
|
var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
|
|
@@ -94,7 +95,7 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
|
|
|
94
95
|
var win = (0, _util.getWin)(popupElement);
|
|
95
96
|
|
|
96
97
|
// Placement
|
|
97
|
-
var placementInfo = builtinPlacements[placement]
|
|
98
|
+
var placementInfo = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, builtinPlacements[placement]), popupAlign);
|
|
98
99
|
|
|
99
100
|
// Reset first
|
|
100
101
|
popupElement.style.left = '0';
|
|
@@ -149,6 +150,9 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
|
|
|
149
150
|
bottom: clientHeight
|
|
150
151
|
};
|
|
151
152
|
(scrollerList || []).forEach(function (ele) {
|
|
153
|
+
if (ele instanceof HTMLBodyElement) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
152
156
|
var eleRect = ele.getBoundingClientRect();
|
|
153
157
|
var eleOutHeight = ele.offsetHeight,
|
|
154
158
|
eleInnerHeight = ele.clientHeight,
|
|
@@ -175,7 +179,7 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
|
|
|
175
179
|
var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);
|
|
176
180
|
|
|
177
181
|
// No need to align since it's not visible in view
|
|
178
|
-
if (_scaleX === 0 || _scaleY === 0 || target
|
|
182
|
+
if (_scaleX === 0 || _scaleY === 0 || (0, _findDOMNode.isDOM)(target) && !(0, _isVisible.default)(target)) {
|
|
179
183
|
return;
|
|
180
184
|
}
|
|
181
185
|
|
package/lib/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
|
|
|
16
16
|
var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
|
|
17
17
|
var _useId = _interopRequireDefault(require("rc-util/lib/hooks/useId"));
|
|
18
18
|
var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
|
|
19
|
+
var _findDOMNode = require("rc-util/lib/Dom/findDOMNode");
|
|
19
20
|
var React = _interopRequireWildcard(require("react"));
|
|
20
21
|
var _context = _interopRequireDefault(require("./context"));
|
|
21
22
|
var _useAction3 = _interopRequireDefault(require("./hooks/useAction"));
|
|
@@ -95,7 +96,7 @@ function generateTrigger() {
|
|
|
95
96
|
popupEle = _React$useState2[0],
|
|
96
97
|
setPopupEle = _React$useState2[1];
|
|
97
98
|
var setPopupRef = React.useCallback(function (node) {
|
|
98
|
-
if (
|
|
99
|
+
if ((0, _findDOMNode.isDOM)(node)) {
|
|
99
100
|
setPopupEle(node);
|
|
100
101
|
}
|
|
101
102
|
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
|
|
@@ -108,7 +109,7 @@ function generateTrigger() {
|
|
|
108
109
|
targetEle = _React$useState4[0],
|
|
109
110
|
setTargetEle = _React$useState4[1];
|
|
110
111
|
var setTargetRef = React.useCallback(function (node) {
|
|
111
|
-
if (
|
|
112
|
+
if ((0, _findDOMNode.isDOM)(node)) {
|
|
112
113
|
setTargetEle(node);
|
|
113
114
|
}
|
|
114
115
|
}, []);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-component/trigger",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.7",
|
|
4
4
|
"description": "base abstract trigger component for react",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=8.x"
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"rc-align": "^4.0.0",
|
|
67
67
|
"rc-motion": "^2.0.0",
|
|
68
68
|
"rc-resize-observer": "^1.3.1",
|
|
69
|
-
"rc-util": "^5.
|
|
69
|
+
"rc-util": "^5.29.2"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"react": ">=16.9.0",
|