@rc-component/trigger 3.3.0 → 3.4.1
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 +4 -2
- package/es/index.js +5 -1
- package/lib/hooks/useAlign.js +4 -2
- package/lib/index.js +5 -1
- package/package.json +1 -1
package/es/hooks/useAlign.js
CHANGED
|
@@ -100,8 +100,6 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
|
|
|
100
100
|
const doc = popupElement.ownerDocument;
|
|
101
101
|
const win = getWin(popupElement);
|
|
102
102
|
const {
|
|
103
|
-
width,
|
|
104
|
-
height,
|
|
105
103
|
position: popupPosition
|
|
106
104
|
} = win.getComputedStyle(popupElement);
|
|
107
105
|
const originLeft = popupElement.style.left;
|
|
@@ -153,6 +151,10 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
|
|
|
153
151
|
};
|
|
154
152
|
}
|
|
155
153
|
const popupRect = popupElement.getBoundingClientRect();
|
|
154
|
+
const {
|
|
155
|
+
height,
|
|
156
|
+
width
|
|
157
|
+
} = win.getComputedStyle(popupElement);
|
|
156
158
|
popupRect.x = popupRect.x ?? popupRect.left;
|
|
157
159
|
popupRect.y = popupRect.y ?? popupRect.top;
|
|
158
160
|
const {
|
package/es/index.js
CHANGED
|
@@ -355,6 +355,10 @@ export function generateTrigger(PortalComponent = Portal) {
|
|
|
355
355
|
};
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
+
// ============================ Perf ============================
|
|
359
|
+
const rendedRef = React.useRef(false);
|
|
360
|
+
rendedRef.current ||= forceRender || mergedOpen || inMotion;
|
|
361
|
+
|
|
358
362
|
// =========================== Render ===========================
|
|
359
363
|
const mergedChildrenProps = {
|
|
360
364
|
...originChildProps,
|
|
@@ -392,7 +396,7 @@ export function generateTrigger(PortalComponent = Portal) {
|
|
|
392
396
|
disabled: !mergedOpen,
|
|
393
397
|
ref: setTargetRef,
|
|
394
398
|
onResize: onTargetResize
|
|
395
|
-
}, triggerNode), /*#__PURE__*/React.createElement(TriggerContext.Provider, {
|
|
399
|
+
}, triggerNode), rendedRef.current && /*#__PURE__*/React.createElement(TriggerContext.Provider, {
|
|
396
400
|
value: context
|
|
397
401
|
}, /*#__PURE__*/React.createElement(Popup, {
|
|
398
402
|
portal: PortalComponent,
|
package/lib/hooks/useAlign.js
CHANGED
|
@@ -109,8 +109,6 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
|
|
|
109
109
|
const doc = popupElement.ownerDocument;
|
|
110
110
|
const win = (0, _util.getWin)(popupElement);
|
|
111
111
|
const {
|
|
112
|
-
width,
|
|
113
|
-
height,
|
|
114
112
|
position: popupPosition
|
|
115
113
|
} = win.getComputedStyle(popupElement);
|
|
116
114
|
const originLeft = popupElement.style.left;
|
|
@@ -162,6 +160,10 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
|
|
|
162
160
|
};
|
|
163
161
|
}
|
|
164
162
|
const popupRect = popupElement.getBoundingClientRect();
|
|
163
|
+
const {
|
|
164
|
+
height,
|
|
165
|
+
width
|
|
166
|
+
} = win.getComputedStyle(popupElement);
|
|
165
167
|
popupRect.x = popupRect.x ?? popupRect.left;
|
|
166
168
|
popupRect.y = popupRect.y ?? popupRect.top;
|
|
167
169
|
const {
|
package/lib/index.js
CHANGED
|
@@ -364,6 +364,10 @@ function generateTrigger(PortalComponent = _portal.default) {
|
|
|
364
364
|
};
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
+
// ============================ Perf ============================
|
|
368
|
+
const rendedRef = React.useRef(false);
|
|
369
|
+
rendedRef.current ||= forceRender || mergedOpen || inMotion;
|
|
370
|
+
|
|
367
371
|
// =========================== Render ===========================
|
|
368
372
|
const mergedChildrenProps = {
|
|
369
373
|
...originChildProps,
|
|
@@ -401,7 +405,7 @@ function generateTrigger(PortalComponent = _portal.default) {
|
|
|
401
405
|
disabled: !mergedOpen,
|
|
402
406
|
ref: setTargetRef,
|
|
403
407
|
onResize: onTargetResize
|
|
404
|
-
}, triggerNode), /*#__PURE__*/React.createElement(_context.default.Provider, {
|
|
408
|
+
}, triggerNode), rendedRef.current && /*#__PURE__*/React.createElement(_context.default.Provider, {
|
|
405
409
|
value: context
|
|
406
410
|
}, /*#__PURE__*/React.createElement(_Popup.default, {
|
|
407
411
|
portal: PortalComponent,
|