@react-aria/utils 3.28.1 → 3.29.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/DOMFunctions.main.js.map +1 -1
- package/dist/DOMFunctions.module.js.map +1 -1
- package/dist/ShadowTreeWalker.main.js.map +1 -1
- package/dist/ShadowTreeWalker.module.js.map +1 -1
- package/dist/animation.main.js.map +1 -1
- package/dist/animation.module.js.map +1 -1
- package/dist/focusWithoutScrolling.main.js.map +1 -1
- package/dist/focusWithoutScrolling.module.js.map +1 -1
- package/dist/getOffset.main.js.map +1 -1
- package/dist/getOffset.module.js.map +1 -1
- package/dist/import.mjs +3 -1
- package/dist/inertValue.main.js.map +1 -1
- package/dist/inertValue.module.js.map +1 -1
- package/dist/isFocusable.main.js.map +1 -1
- package/dist/isFocusable.module.js.map +1 -1
- package/dist/isVirtualEvent.main.js.map +1 -1
- package/dist/isVirtualEvent.module.js.map +1 -1
- package/dist/keyboard.main.js.map +1 -1
- package/dist/keyboard.module.js.map +1 -1
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -1
- package/dist/mergeRefs.main.js +16 -4
- package/dist/mergeRefs.main.js.map +1 -1
- package/dist/mergeRefs.mjs +16 -4
- package/dist/mergeRefs.module.js +16 -4
- package/dist/mergeRefs.module.js.map +1 -1
- package/dist/module.js +3 -1
- package/dist/module.js.map +1 -1
- package/dist/openLink.main.js +1 -1
- package/dist/openLink.main.js.map +1 -1
- package/dist/openLink.mjs +1 -1
- package/dist/openLink.module.js +1 -1
- package/dist/openLink.module.js.map +1 -1
- package/dist/platform.main.js +1 -0
- package/dist/platform.main.js.map +1 -1
- package/dist/platform.mjs +1 -0
- package/dist/platform.module.js +1 -0
- package/dist/platform.module.js.map +1 -1
- package/dist/runAfterTransition.main.js +10 -0
- package/dist/runAfterTransition.main.js.map +1 -1
- package/dist/runAfterTransition.mjs +10 -0
- package/dist/runAfterTransition.module.js +10 -0
- package/dist/runAfterTransition.module.js.map +1 -1
- package/dist/scrollIntoView.main.js.map +1 -1
- package/dist/scrollIntoView.module.js.map +1 -1
- package/dist/types.d.ts +25 -34
- package/dist/types.d.ts.map +1 -1
- package/dist/useEvent.main.js.map +1 -1
- package/dist/useEvent.module.js.map +1 -1
- package/dist/useFormReset.main.js.map +1 -1
- package/dist/useFormReset.module.js.map +1 -1
- package/dist/useLoadMore.main.js.map +1 -1
- package/dist/useLoadMore.module.js.map +1 -1
- package/dist/useLoadMoreSentinel.main.js +59 -0
- package/dist/useLoadMoreSentinel.main.js.map +1 -0
- package/dist/useLoadMoreSentinel.mjs +54 -0
- package/dist/useLoadMoreSentinel.module.js +54 -0
- package/dist/useLoadMoreSentinel.module.js.map +1 -0
- package/dist/useObjectRef.main.js +25 -4
- package/dist/useObjectRef.main.js.map +1 -1
- package/dist/useObjectRef.mjs +26 -5
- package/dist/useObjectRef.module.js +26 -5
- package/dist/useObjectRef.module.js.map +1 -1
- package/dist/useResizeObserver.main.js.map +1 -1
- package/dist/useResizeObserver.module.js.map +1 -1
- package/dist/useSyncRef.main.js.map +1 -1
- package/dist/useSyncRef.module.js.map +1 -1
- package/dist/useUpdateLayoutEffect.main.js.map +1 -1
- package/dist/useUpdateLayoutEffect.module.js.map +1 -1
- package/package.json +6 -6
- package/src/animation.ts +6 -6
- package/src/focusWithoutScrolling.ts +1 -1
- package/src/getOffset.ts +3 -1
- package/src/index.ts +3 -0
- package/src/inertValue.ts +1 -1
- package/src/isFocusable.ts +2 -2
- package/src/isVirtualEvent.ts +1 -1
- package/src/keyboard.tsx +1 -1
- package/src/mergeRefs.ts +28 -8
- package/src/openLink.tsx +9 -9
- package/src/runAfterTransition.ts +17 -1
- package/src/scrollIntoView.ts +2 -2
- package/src/shadowdom/DOMFunctions.ts +5 -5
- package/src/shadowdom/ShadowTreeWalker.ts +1 -1
- package/src/useEvent.ts +1 -1
- package/src/useFormReset.ts +1 -1
- package/src/useLoadMore.ts +2 -2
- package/src/useLoadMoreSentinel.ts +63 -0
- package/src/useObjectRef.ts +45 -15
- package/src/useResizeObserver.ts +1 -1
- package/src/useSyncRef.ts +1 -1
- package/src/useUpdateLayoutEffect.ts +1 -1
package/src/useObjectRef.ts
CHANGED
|
@@ -10,30 +10,60 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {MutableRefObject, useMemo, useRef} from 'react';
|
|
13
|
+
import {MutableRefObject, useCallback, useMemo, useRef} from 'react';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Offers an object ref for a given callback ref or an object ref. Especially
|
|
17
17
|
* helfpul when passing forwarded refs (created using `React.forwardRef`) to
|
|
18
18
|
* React Aria hooks.
|
|
19
19
|
*
|
|
20
|
-
* @param
|
|
20
|
+
* @param ref The original ref intended to be used.
|
|
21
21
|
* @returns An object ref that updates the given ref.
|
|
22
|
-
* @see https://
|
|
22
|
+
* @see https://react.dev/reference/react/forwardRef
|
|
23
23
|
*/
|
|
24
|
-
export function useObjectRef<T>(
|
|
24
|
+
export function useObjectRef<T>(ref?: ((instance: T | null) => (() => void) | void) | MutableRefObject<T | null> | null): MutableRefObject<T | null> {
|
|
25
25
|
const objRef: MutableRefObject<T | null> = useRef<T>(null);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const cleanupRef: MutableRefObject<(() => void) | void> = useRef(undefined);
|
|
27
|
+
|
|
28
|
+
const refEffect = useCallback(
|
|
29
|
+
(instance: T | null) => {
|
|
30
|
+
if (typeof ref === 'function') {
|
|
31
|
+
const refCallback = ref;
|
|
32
|
+
const refCleanup = refCallback(instance);
|
|
33
|
+
return () => {
|
|
34
|
+
if (typeof refCleanup === 'function') {
|
|
35
|
+
refCleanup();
|
|
36
|
+
} else {
|
|
37
|
+
refCallback(null);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
} else if (ref) {
|
|
41
|
+
ref.current = instance;
|
|
42
|
+
return () => {
|
|
43
|
+
ref.current = null;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
29
46
|
},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
47
|
+
[ref]
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
return useMemo(
|
|
51
|
+
() => ({
|
|
52
|
+
get current() {
|
|
53
|
+
return objRef.current;
|
|
54
|
+
},
|
|
55
|
+
set current(value) {
|
|
56
|
+
objRef.current = value;
|
|
57
|
+
if (cleanupRef.current) {
|
|
58
|
+
cleanupRef.current();
|
|
59
|
+
cleanupRef.current = undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (value != null) {
|
|
63
|
+
cleanupRef.current = refEffect(value);
|
|
64
|
+
}
|
|
36
65
|
}
|
|
37
|
-
}
|
|
38
|
-
|
|
66
|
+
}),
|
|
67
|
+
[refEffect]
|
|
68
|
+
);
|
|
39
69
|
}
|
package/src/useResizeObserver.ts
CHANGED
|
@@ -12,7 +12,7 @@ type useResizeObserverOptionsType<T> = {
|
|
|
12
12
|
onResize: () => void
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>) {
|
|
15
|
+
export function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>): void {
|
|
16
16
|
const {ref, box, onResize} = options;
|
|
17
17
|
|
|
18
18
|
useEffect(() => {
|
package/src/useSyncRef.ts
CHANGED
|
@@ -19,7 +19,7 @@ interface ContextValue<T> {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
// Syncs ref from context with ref passed to hook
|
|
22
|
-
export function useSyncRef<T>(context?: ContextValue<T> | null, ref?: RefObject<T | null>) {
|
|
22
|
+
export function useSyncRef<T>(context?: ContextValue<T> | null, ref?: RefObject<T | null>): void {
|
|
23
23
|
useLayoutEffect(() => {
|
|
24
24
|
if (context && context.ref && ref) {
|
|
25
25
|
context.ref.current = ref.current;
|
|
@@ -14,7 +14,7 @@ import {EffectCallback, useRef} from 'react';
|
|
|
14
14
|
import {useLayoutEffect} from './useLayoutEffect';
|
|
15
15
|
|
|
16
16
|
// Like useLayoutEffect, but only called for updates after the initial render.
|
|
17
|
-
export function useUpdateLayoutEffect(effect: EffectCallback, dependencies: any[]) {
|
|
17
|
+
export function useUpdateLayoutEffect(effect: EffectCallback, dependencies: any[]): void {
|
|
18
18
|
const isInitialMount = useRef(true);
|
|
19
19
|
const lastDeps = useRef<any[] | null>(null);
|
|
20
20
|
|