@reactuses/core 2.2.9 → 3.0.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.
- package/dist/index.cjs +43 -43
- package/dist/index.mjs +43 -43
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2974,18 +2974,19 @@ function getTargetElement(target, defaultElement) {
|
|
|
2974
2974
|
return targetElement;
|
|
2975
2975
|
}
|
|
2976
2976
|
function useLatestElement(target, defaultElement) {
|
|
2977
|
-
const
|
|
2977
|
+
const [latestElement, setLatestElement] = React.useState(
|
|
2978
|
+
getTargetElement(target, defaultElement)
|
|
2979
|
+
);
|
|
2978
2980
|
React.useEffect(() => {
|
|
2979
|
-
|
|
2980
|
-
});
|
|
2981
|
-
return
|
|
2981
|
+
setLatestElement(getTargetElement(target, defaultElement));
|
|
2982
|
+
}, [target, defaultElement]);
|
|
2983
|
+
return latestElement;
|
|
2982
2984
|
}
|
|
2983
2985
|
|
|
2984
2986
|
function useEventListener(eventName, handler, element, options) {
|
|
2985
2987
|
const savedHandler = useLatest(handler);
|
|
2986
|
-
const
|
|
2988
|
+
const targetElement = useLatestElement(element, defaultWindow);
|
|
2987
2989
|
useDeepCompareEffect(() => {
|
|
2988
|
-
const targetElement = targetElementRef.current;
|
|
2989
2990
|
if (!(targetElement && targetElement.addEventListener)) {
|
|
2990
2991
|
return;
|
|
2991
2992
|
}
|
|
@@ -2997,7 +2998,7 @@ function useEventListener(eventName, handler, element, options) {
|
|
|
2997
2998
|
}
|
|
2998
2999
|
off(targetElement, eventName, eventListener);
|
|
2999
3000
|
};
|
|
3000
|
-
}, [eventName,
|
|
3001
|
+
}, [eventName, targetElement, options, savedHandler]);
|
|
3001
3002
|
}
|
|
3002
3003
|
|
|
3003
3004
|
function useCounter(initialValue = 0, max = null, min = null) {
|
|
@@ -3149,13 +3150,13 @@ function useMutationObserver(callback, target, options = {}) {
|
|
|
3149
3150
|
}
|
|
3150
3151
|
}, []);
|
|
3151
3152
|
useDeepCompareEffect(() => {
|
|
3152
|
-
if (!element
|
|
3153
|
+
if (!element) {
|
|
3153
3154
|
return;
|
|
3154
3155
|
}
|
|
3155
3156
|
observerRef.current = new MutationObserver(callbackRef.current);
|
|
3156
|
-
observerRef.current.observe(element
|
|
3157
|
+
observerRef.current.observe(element, options);
|
|
3157
3158
|
return stop;
|
|
3158
|
-
}, [options, element
|
|
3159
|
+
}, [options, element]);
|
|
3159
3160
|
return stop;
|
|
3160
3161
|
}
|
|
3161
3162
|
|
|
@@ -3939,16 +3940,16 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
3939
3940
|
}
|
|
3940
3941
|
}, []);
|
|
3941
3942
|
useDeepCompareEffect(() => {
|
|
3942
|
-
if (!element
|
|
3943
|
+
if (!element) {
|
|
3943
3944
|
return;
|
|
3944
3945
|
}
|
|
3945
3946
|
observerRef.current = new IntersectionObserver(
|
|
3946
3947
|
savedCallback.current,
|
|
3947
3948
|
options
|
|
3948
3949
|
);
|
|
3949
|
-
observerRef.current.observe(element
|
|
3950
|
+
observerRef.current.observe(element);
|
|
3950
3951
|
return stop;
|
|
3951
|
-
}, [options, element
|
|
3952
|
+
}, [options, element]);
|
|
3952
3953
|
return stop;
|
|
3953
3954
|
}
|
|
3954
3955
|
|
|
@@ -3995,13 +3996,13 @@ function useResizeObserver(target, callback, options = {}) {
|
|
|
3995
3996
|
}
|
|
3996
3997
|
}, []);
|
|
3997
3998
|
useDeepCompareEffect(() => {
|
|
3998
|
-
if (!element
|
|
3999
|
+
if (!element) {
|
|
3999
4000
|
return;
|
|
4000
4001
|
}
|
|
4001
4002
|
observerRef.current = new ResizeObserver(savedCallback.current);
|
|
4002
|
-
observerRef.current.observe(element
|
|
4003
|
+
observerRef.current.observe(element, options);
|
|
4003
4004
|
return stop;
|
|
4004
|
-
}, [options, element
|
|
4005
|
+
}, [options, element]);
|
|
4005
4006
|
return stop;
|
|
4006
4007
|
}
|
|
4007
4008
|
|
|
@@ -4231,16 +4232,16 @@ function useInfiniteScroll(target, onLoadMore, options = {}) {
|
|
|
4231
4232
|
useUpdateEffect(() => {
|
|
4232
4233
|
const opts = latestOptions.current;
|
|
4233
4234
|
const fn = () => __async$3(this, null, function* () {
|
|
4234
|
-
var _a2, _b2
|
|
4235
|
+
var _a2, _b2;
|
|
4235
4236
|
const previous = {
|
|
4236
|
-
height: (
|
|
4237
|
-
width: (
|
|
4237
|
+
height: (_a2 = element == null ? void 0 : element.scrollHeight) != null ? _a2 : 0,
|
|
4238
|
+
width: (_b2 = element == null ? void 0 : element.scrollWidth) != null ? _b2 : 0
|
|
4238
4239
|
};
|
|
4239
4240
|
yield savedLoadMore.current(state);
|
|
4240
|
-
if (opts.preserveScrollPosition && element
|
|
4241
|
-
element.
|
|
4242
|
-
top: element.
|
|
4243
|
-
left: element.
|
|
4241
|
+
if (opts.preserveScrollPosition && element) {
|
|
4242
|
+
element.scrollTo({
|
|
4243
|
+
top: element.scrollHeight - previous.height,
|
|
4244
|
+
left: element.scrollWidth - previous.width
|
|
4244
4245
|
});
|
|
4245
4246
|
}
|
|
4246
4247
|
});
|
|
@@ -4282,7 +4283,7 @@ function useMousePressed(target, options = {}) {
|
|
|
4282
4283
|
const { touch = true, drag = true, initialValue = false } = options;
|
|
4283
4284
|
const [pressed, setPressed] = React.useState(initialValue);
|
|
4284
4285
|
const [sourceType, setSourceType] = React.useState(null);
|
|
4285
|
-
const
|
|
4286
|
+
const element = useLatestElement(target);
|
|
4286
4287
|
const onPressed = React.useCallback(
|
|
4287
4288
|
(srcType) => () => {
|
|
4288
4289
|
setPressed(true);
|
|
@@ -4298,7 +4299,6 @@ function useMousePressed(target, options = {}) {
|
|
|
4298
4299
|
useEventListener("mouseleave", onReleased, () => window, { passive: true });
|
|
4299
4300
|
useEventListener("mouseup", onReleased, () => window, { passive: true });
|
|
4300
4301
|
React.useEffect(() => {
|
|
4301
|
-
const element = elementRef.current;
|
|
4302
4302
|
if (drag) {
|
|
4303
4303
|
element == null ? void 0 : element.addEventListener("dragstart", onPressed("mouse"), {
|
|
4304
4304
|
passive: true
|
|
@@ -4333,7 +4333,7 @@ function useMousePressed(target, options = {}) {
|
|
|
4333
4333
|
element == null ? void 0 : element.removeEventListener("touchcancel", onReleased);
|
|
4334
4334
|
}
|
|
4335
4335
|
};
|
|
4336
|
-
}, [drag, onPressed, onReleased, touch,
|
|
4336
|
+
}, [drag, onPressed, onReleased, touch, element]);
|
|
4337
4337
|
return [pressed, sourceType];
|
|
4338
4338
|
}
|
|
4339
4339
|
|
|
@@ -4352,32 +4352,32 @@ function useScrollLock(target, initialState = false) {
|
|
|
4352
4352
|
const initialOverflowRef = React.useRef("scroll");
|
|
4353
4353
|
const element = useLatestElement(target);
|
|
4354
4354
|
React.useEffect(() => {
|
|
4355
|
-
if (element
|
|
4356
|
-
initialOverflowRef.current = element.
|
|
4355
|
+
if (element) {
|
|
4356
|
+
initialOverflowRef.current = element.style.overflow;
|
|
4357
4357
|
if (locked) {
|
|
4358
|
-
element.
|
|
4358
|
+
element.style.overflow = "hidden";
|
|
4359
4359
|
}
|
|
4360
4360
|
}
|
|
4361
|
-
}, [locked, element
|
|
4361
|
+
}, [locked, element]);
|
|
4362
4362
|
const lock = useEvent(() => {
|
|
4363
|
-
if (!element
|
|
4363
|
+
if (!element || locked) {
|
|
4364
4364
|
return;
|
|
4365
4365
|
}
|
|
4366
4366
|
if (isIOS) {
|
|
4367
|
-
element.
|
|
4367
|
+
element.addEventListener("touchmove", preventDefault, {
|
|
4368
4368
|
passive: false
|
|
4369
4369
|
});
|
|
4370
4370
|
}
|
|
4371
4371
|
setLocked(true);
|
|
4372
4372
|
});
|
|
4373
4373
|
const unlock = useEvent(() => {
|
|
4374
|
-
if (!element
|
|
4374
|
+
if (!element || !locked) {
|
|
4375
4375
|
return;
|
|
4376
4376
|
}
|
|
4377
4377
|
if (isIOS) {
|
|
4378
|
-
element.
|
|
4378
|
+
element.removeEventListener("touchmove", preventDefault);
|
|
4379
4379
|
}
|
|
4380
|
-
element.
|
|
4380
|
+
element.style.overflow = initialOverflowRef.current;
|
|
4381
4381
|
setLocked(false);
|
|
4382
4382
|
});
|
|
4383
4383
|
const set = useEvent((flag) => {
|
|
@@ -4817,11 +4817,11 @@ function useClickOutSide(target, handler) {
|
|
|
4817
4817
|
const savedHandler = useLatest(handler);
|
|
4818
4818
|
const element = useLatestElement(target);
|
|
4819
4819
|
const listener = (event) => {
|
|
4820
|
-
if (!element
|
|
4820
|
+
if (!element) {
|
|
4821
4821
|
return;
|
|
4822
4822
|
}
|
|
4823
4823
|
const elements = event.composedPath();
|
|
4824
|
-
if (element
|
|
4824
|
+
if (element === event.target || elements.includes(element)) {
|
|
4825
4825
|
return;
|
|
4826
4826
|
}
|
|
4827
4827
|
savedHandler.current(event);
|
|
@@ -5066,7 +5066,7 @@ function useScrollIntoView({
|
|
|
5066
5066
|
const scrollIntoView = useEvent(
|
|
5067
5067
|
({ alignment = "start" } = {}) => {
|
|
5068
5068
|
var _a;
|
|
5069
|
-
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element
|
|
5069
|
+
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5070
5070
|
shouldStop.current = false;
|
|
5071
5071
|
if (frameID.current) {
|
|
5072
5072
|
cancel();
|
|
@@ -5074,7 +5074,7 @@ function useScrollIntoView({
|
|
|
5074
5074
|
const start = (_a = getScrollStart({ parent, axis })) != null ? _a : 0;
|
|
5075
5075
|
const change = getRelativePosition({
|
|
5076
5076
|
parent,
|
|
5077
|
-
target: element
|
|
5077
|
+
target: element,
|
|
5078
5078
|
axis,
|
|
5079
5079
|
alignment,
|
|
5080
5080
|
offset,
|
|
@@ -5128,10 +5128,10 @@ const useSticky = ({
|
|
|
5128
5128
|
const [isSticky, setSticky] = React.useState(false);
|
|
5129
5129
|
const element = useLatestElement(targetElement);
|
|
5130
5130
|
const { run: scrollHandler } = useThrottleFn(() => {
|
|
5131
|
-
if (!element
|
|
5131
|
+
if (!element) {
|
|
5132
5132
|
return;
|
|
5133
5133
|
}
|
|
5134
|
-
const rect = element.
|
|
5134
|
+
const rect = element.getBoundingClientRect();
|
|
5135
5135
|
if (axis === "y") {
|
|
5136
5136
|
setSticky((rect == null ? void 0 : rect.top) <= nav);
|
|
5137
5137
|
} else {
|
|
@@ -5139,8 +5139,8 @@ const useSticky = ({
|
|
|
5139
5139
|
}
|
|
5140
5140
|
}, 50);
|
|
5141
5141
|
React.useEffect(() => {
|
|
5142
|
-
const scrollParent = getTargetElement(scrollElement) || getScrollParent(axis, element
|
|
5143
|
-
if (!element
|
|
5142
|
+
const scrollParent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5143
|
+
if (!element || !scrollParent) {
|
|
5144
5144
|
return;
|
|
5145
5145
|
}
|
|
5146
5146
|
scrollParent.addEventListener("scroll", scrollHandler);
|
package/dist/index.mjs
CHANGED
|
@@ -2966,18 +2966,19 @@ function getTargetElement(target, defaultElement) {
|
|
|
2966
2966
|
return targetElement;
|
|
2967
2967
|
}
|
|
2968
2968
|
function useLatestElement(target, defaultElement) {
|
|
2969
|
-
const
|
|
2969
|
+
const [latestElement, setLatestElement] = useState(
|
|
2970
|
+
getTargetElement(target, defaultElement)
|
|
2971
|
+
);
|
|
2970
2972
|
useEffect(() => {
|
|
2971
|
-
|
|
2972
|
-
});
|
|
2973
|
-
return
|
|
2973
|
+
setLatestElement(getTargetElement(target, defaultElement));
|
|
2974
|
+
}, [target, defaultElement]);
|
|
2975
|
+
return latestElement;
|
|
2974
2976
|
}
|
|
2975
2977
|
|
|
2976
2978
|
function useEventListener(eventName, handler, element, options) {
|
|
2977
2979
|
const savedHandler = useLatest(handler);
|
|
2978
|
-
const
|
|
2980
|
+
const targetElement = useLatestElement(element, defaultWindow);
|
|
2979
2981
|
useDeepCompareEffect(() => {
|
|
2980
|
-
const targetElement = targetElementRef.current;
|
|
2981
2982
|
if (!(targetElement && targetElement.addEventListener)) {
|
|
2982
2983
|
return;
|
|
2983
2984
|
}
|
|
@@ -2989,7 +2990,7 @@ function useEventListener(eventName, handler, element, options) {
|
|
|
2989
2990
|
}
|
|
2990
2991
|
off(targetElement, eventName, eventListener);
|
|
2991
2992
|
};
|
|
2992
|
-
}, [eventName,
|
|
2993
|
+
}, [eventName, targetElement, options, savedHandler]);
|
|
2993
2994
|
}
|
|
2994
2995
|
|
|
2995
2996
|
function useCounter(initialValue = 0, max = null, min = null) {
|
|
@@ -3141,13 +3142,13 @@ function useMutationObserver(callback, target, options = {}) {
|
|
|
3141
3142
|
}
|
|
3142
3143
|
}, []);
|
|
3143
3144
|
useDeepCompareEffect(() => {
|
|
3144
|
-
if (!element
|
|
3145
|
+
if (!element) {
|
|
3145
3146
|
return;
|
|
3146
3147
|
}
|
|
3147
3148
|
observerRef.current = new MutationObserver(callbackRef.current);
|
|
3148
|
-
observerRef.current.observe(element
|
|
3149
|
+
observerRef.current.observe(element, options);
|
|
3149
3150
|
return stop;
|
|
3150
|
-
}, [options, element
|
|
3151
|
+
}, [options, element]);
|
|
3151
3152
|
return stop;
|
|
3152
3153
|
}
|
|
3153
3154
|
|
|
@@ -3931,16 +3932,16 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
3931
3932
|
}
|
|
3932
3933
|
}, []);
|
|
3933
3934
|
useDeepCompareEffect(() => {
|
|
3934
|
-
if (!element
|
|
3935
|
+
if (!element) {
|
|
3935
3936
|
return;
|
|
3936
3937
|
}
|
|
3937
3938
|
observerRef.current = new IntersectionObserver(
|
|
3938
3939
|
savedCallback.current,
|
|
3939
3940
|
options
|
|
3940
3941
|
);
|
|
3941
|
-
observerRef.current.observe(element
|
|
3942
|
+
observerRef.current.observe(element);
|
|
3942
3943
|
return stop;
|
|
3943
|
-
}, [options, element
|
|
3944
|
+
}, [options, element]);
|
|
3944
3945
|
return stop;
|
|
3945
3946
|
}
|
|
3946
3947
|
|
|
@@ -3987,13 +3988,13 @@ function useResizeObserver(target, callback, options = {}) {
|
|
|
3987
3988
|
}
|
|
3988
3989
|
}, []);
|
|
3989
3990
|
useDeepCompareEffect(() => {
|
|
3990
|
-
if (!element
|
|
3991
|
+
if (!element) {
|
|
3991
3992
|
return;
|
|
3992
3993
|
}
|
|
3993
3994
|
observerRef.current = new ResizeObserver(savedCallback.current);
|
|
3994
|
-
observerRef.current.observe(element
|
|
3995
|
+
observerRef.current.observe(element, options);
|
|
3995
3996
|
return stop;
|
|
3996
|
-
}, [options, element
|
|
3997
|
+
}, [options, element]);
|
|
3997
3998
|
return stop;
|
|
3998
3999
|
}
|
|
3999
4000
|
|
|
@@ -4223,16 +4224,16 @@ function useInfiniteScroll(target, onLoadMore, options = {}) {
|
|
|
4223
4224
|
useUpdateEffect(() => {
|
|
4224
4225
|
const opts = latestOptions.current;
|
|
4225
4226
|
const fn = () => __async$3(this, null, function* () {
|
|
4226
|
-
var _a2, _b2
|
|
4227
|
+
var _a2, _b2;
|
|
4227
4228
|
const previous = {
|
|
4228
|
-
height: (
|
|
4229
|
-
width: (
|
|
4229
|
+
height: (_a2 = element == null ? void 0 : element.scrollHeight) != null ? _a2 : 0,
|
|
4230
|
+
width: (_b2 = element == null ? void 0 : element.scrollWidth) != null ? _b2 : 0
|
|
4230
4231
|
};
|
|
4231
4232
|
yield savedLoadMore.current(state);
|
|
4232
|
-
if (opts.preserveScrollPosition && element
|
|
4233
|
-
element.
|
|
4234
|
-
top: element.
|
|
4235
|
-
left: element.
|
|
4233
|
+
if (opts.preserveScrollPosition && element) {
|
|
4234
|
+
element.scrollTo({
|
|
4235
|
+
top: element.scrollHeight - previous.height,
|
|
4236
|
+
left: element.scrollWidth - previous.width
|
|
4236
4237
|
});
|
|
4237
4238
|
}
|
|
4238
4239
|
});
|
|
@@ -4274,7 +4275,7 @@ function useMousePressed(target, options = {}) {
|
|
|
4274
4275
|
const { touch = true, drag = true, initialValue = false } = options;
|
|
4275
4276
|
const [pressed, setPressed] = useState(initialValue);
|
|
4276
4277
|
const [sourceType, setSourceType] = useState(null);
|
|
4277
|
-
const
|
|
4278
|
+
const element = useLatestElement(target);
|
|
4278
4279
|
const onPressed = useCallback(
|
|
4279
4280
|
(srcType) => () => {
|
|
4280
4281
|
setPressed(true);
|
|
@@ -4290,7 +4291,6 @@ function useMousePressed(target, options = {}) {
|
|
|
4290
4291
|
useEventListener("mouseleave", onReleased, () => window, { passive: true });
|
|
4291
4292
|
useEventListener("mouseup", onReleased, () => window, { passive: true });
|
|
4292
4293
|
useEffect(() => {
|
|
4293
|
-
const element = elementRef.current;
|
|
4294
4294
|
if (drag) {
|
|
4295
4295
|
element == null ? void 0 : element.addEventListener("dragstart", onPressed("mouse"), {
|
|
4296
4296
|
passive: true
|
|
@@ -4325,7 +4325,7 @@ function useMousePressed(target, options = {}) {
|
|
|
4325
4325
|
element == null ? void 0 : element.removeEventListener("touchcancel", onReleased);
|
|
4326
4326
|
}
|
|
4327
4327
|
};
|
|
4328
|
-
}, [drag, onPressed, onReleased, touch,
|
|
4328
|
+
}, [drag, onPressed, onReleased, touch, element]);
|
|
4329
4329
|
return [pressed, sourceType];
|
|
4330
4330
|
}
|
|
4331
4331
|
|
|
@@ -4344,32 +4344,32 @@ function useScrollLock(target, initialState = false) {
|
|
|
4344
4344
|
const initialOverflowRef = useRef("scroll");
|
|
4345
4345
|
const element = useLatestElement(target);
|
|
4346
4346
|
useEffect(() => {
|
|
4347
|
-
if (element
|
|
4348
|
-
initialOverflowRef.current = element.
|
|
4347
|
+
if (element) {
|
|
4348
|
+
initialOverflowRef.current = element.style.overflow;
|
|
4349
4349
|
if (locked) {
|
|
4350
|
-
element.
|
|
4350
|
+
element.style.overflow = "hidden";
|
|
4351
4351
|
}
|
|
4352
4352
|
}
|
|
4353
|
-
}, [locked, element
|
|
4353
|
+
}, [locked, element]);
|
|
4354
4354
|
const lock = useEvent(() => {
|
|
4355
|
-
if (!element
|
|
4355
|
+
if (!element || locked) {
|
|
4356
4356
|
return;
|
|
4357
4357
|
}
|
|
4358
4358
|
if (isIOS) {
|
|
4359
|
-
element.
|
|
4359
|
+
element.addEventListener("touchmove", preventDefault, {
|
|
4360
4360
|
passive: false
|
|
4361
4361
|
});
|
|
4362
4362
|
}
|
|
4363
4363
|
setLocked(true);
|
|
4364
4364
|
});
|
|
4365
4365
|
const unlock = useEvent(() => {
|
|
4366
|
-
if (!element
|
|
4366
|
+
if (!element || !locked) {
|
|
4367
4367
|
return;
|
|
4368
4368
|
}
|
|
4369
4369
|
if (isIOS) {
|
|
4370
|
-
element.
|
|
4370
|
+
element.removeEventListener("touchmove", preventDefault);
|
|
4371
4371
|
}
|
|
4372
|
-
element.
|
|
4372
|
+
element.style.overflow = initialOverflowRef.current;
|
|
4373
4373
|
setLocked(false);
|
|
4374
4374
|
});
|
|
4375
4375
|
const set = useEvent((flag) => {
|
|
@@ -4809,11 +4809,11 @@ function useClickOutSide(target, handler) {
|
|
|
4809
4809
|
const savedHandler = useLatest(handler);
|
|
4810
4810
|
const element = useLatestElement(target);
|
|
4811
4811
|
const listener = (event) => {
|
|
4812
|
-
if (!element
|
|
4812
|
+
if (!element) {
|
|
4813
4813
|
return;
|
|
4814
4814
|
}
|
|
4815
4815
|
const elements = event.composedPath();
|
|
4816
|
-
if (element
|
|
4816
|
+
if (element === event.target || elements.includes(element)) {
|
|
4817
4817
|
return;
|
|
4818
4818
|
}
|
|
4819
4819
|
savedHandler.current(event);
|
|
@@ -5058,7 +5058,7 @@ function useScrollIntoView({
|
|
|
5058
5058
|
const scrollIntoView = useEvent(
|
|
5059
5059
|
({ alignment = "start" } = {}) => {
|
|
5060
5060
|
var _a;
|
|
5061
|
-
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element
|
|
5061
|
+
const parent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5062
5062
|
shouldStop.current = false;
|
|
5063
5063
|
if (frameID.current) {
|
|
5064
5064
|
cancel();
|
|
@@ -5066,7 +5066,7 @@ function useScrollIntoView({
|
|
|
5066
5066
|
const start = (_a = getScrollStart({ parent, axis })) != null ? _a : 0;
|
|
5067
5067
|
const change = getRelativePosition({
|
|
5068
5068
|
parent,
|
|
5069
|
-
target: element
|
|
5069
|
+
target: element,
|
|
5070
5070
|
axis,
|
|
5071
5071
|
alignment,
|
|
5072
5072
|
offset,
|
|
@@ -5120,10 +5120,10 @@ const useSticky = ({
|
|
|
5120
5120
|
const [isSticky, setSticky] = useState(false);
|
|
5121
5121
|
const element = useLatestElement(targetElement);
|
|
5122
5122
|
const { run: scrollHandler } = useThrottleFn(() => {
|
|
5123
|
-
if (!element
|
|
5123
|
+
if (!element) {
|
|
5124
5124
|
return;
|
|
5125
5125
|
}
|
|
5126
|
-
const rect = element.
|
|
5126
|
+
const rect = element.getBoundingClientRect();
|
|
5127
5127
|
if (axis === "y") {
|
|
5128
5128
|
setSticky((rect == null ? void 0 : rect.top) <= nav);
|
|
5129
5129
|
} else {
|
|
@@ -5131,8 +5131,8 @@ const useSticky = ({
|
|
|
5131
5131
|
}
|
|
5132
5132
|
}, 50);
|
|
5133
5133
|
useEffect(() => {
|
|
5134
|
-
const scrollParent = getTargetElement(scrollElement) || getScrollParent(axis, element
|
|
5135
|
-
if (!element
|
|
5134
|
+
const scrollParent = getTargetElement(scrollElement) || getScrollParent(axis, element);
|
|
5135
|
+
if (!element || !scrollParent) {
|
|
5136
5136
|
return;
|
|
5137
5137
|
}
|
|
5138
5138
|
scrollParent.addEventListener("scroll", scrollHandler);
|