@react-aria/utils 3.22.0 → 3.23.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/dist/import.mjs +31 -20
- package/dist/main.js +31 -19
- package/dist/main.js.map +1 -1
- package/dist/module.js +31 -20
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +7 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/focusWithoutScrolling.ts +5 -5
- package/src/getScrollParent.ts +15 -8
- package/src/index.ts +1 -1
- package/src/mergeRefs.ts +1 -1
- package/src/openLink.tsx +6 -6
- package/src/runAfterTransition.ts +15 -3
- package/src/useDeepMemo.ts +1 -1
- package/src/useDescription.ts +2 -2
- package/src/useEffectEvent.ts +3 -3
- package/src/useEvent.ts +3 -3
- package/src/useObjectRef.ts +3 -3
- package/src/useSyncRef.ts +4 -2
- package/src/useValueEffect.ts +5 -2
- package/src/useViewportSize.ts +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ export function isAppleDevice(): boolean;
|
|
|
74
74
|
export function isWebKit(): boolean;
|
|
75
75
|
export function isChrome(): any;
|
|
76
76
|
export function isAndroid(): any;
|
|
77
|
+
export function isFirefox(): any;
|
|
77
78
|
interface Router {
|
|
78
79
|
isNative: boolean;
|
|
79
80
|
open: (target: Element, modifiers: Modifiers) => void;
|
|
@@ -136,13 +137,13 @@ export function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: st
|
|
|
136
137
|
/**
|
|
137
138
|
* Offers an object ref for a given callback ref or an object ref. Especially
|
|
138
139
|
* helfpul when passing forwarded refs (created using `React.forwardRef`) to
|
|
139
|
-
* React Aria
|
|
140
|
+
* React Aria hooks.
|
|
140
141
|
*
|
|
141
142
|
* @param forwardedRef The original ref intended to be used.
|
|
142
143
|
* @returns An object ref that updates the given ref.
|
|
143
144
|
* @see https://reactjs.org/docs/forwarding-refs.html
|
|
144
145
|
*/
|
|
145
|
-
export function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T>;
|
|
146
|
+
export function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T | null>;
|
|
146
147
|
export function useUpdateEffect(effect: EffectCallback, dependencies: any[]): void;
|
|
147
148
|
type useResizeObserverOptionsType<T> = {
|
|
148
149
|
ref: RefObject<T | undefined> | undefined;
|
|
@@ -150,18 +151,18 @@ type useResizeObserverOptionsType<T> = {
|
|
|
150
151
|
};
|
|
151
152
|
export function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>): void;
|
|
152
153
|
interface ContextValue<T> {
|
|
153
|
-
ref?: MutableRefObject<T>;
|
|
154
|
+
ref?: MutableRefObject<T | null>;
|
|
154
155
|
}
|
|
155
156
|
export function useSyncRef<T>(context?: ContextValue<T> | null, ref?: RefObject<T>): void;
|
|
156
|
-
export function getScrollParent(node: Element): Element;
|
|
157
|
-
export function isScrollable(node: Element): boolean;
|
|
157
|
+
export function getScrollParent(node: Element, checkForOverflow?: boolean): Element;
|
|
158
|
+
export function isScrollable(node: Element, checkForOverflow?: boolean): boolean;
|
|
158
159
|
interface ViewportSize {
|
|
159
160
|
width: number;
|
|
160
161
|
height: number;
|
|
161
162
|
}
|
|
162
163
|
export function useViewportSize(): ViewportSize;
|
|
163
164
|
export function useDescription(description?: string): AriaLabelingProps;
|
|
164
|
-
export function useEffectEvent<T extends Function>(fn
|
|
165
|
+
export function useEffectEvent<T extends Function>(fn?: T): T;
|
|
165
166
|
export function useEvent<K extends keyof GlobalEventHandlersEventMap>(ref: RefObject<EventTarget>, event: K, handler?: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
166
167
|
type SetValueAction<S> = (prev: S) => Generator<any, void, unknown>;
|
|
167
168
|
export function useValueEffect<S>(defaultValue: S | (() => S)): [S, Dispatch<SetValueAction<S>>];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-aria/utils/src/packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/domHelpers.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/mergeProps.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/mergeRefs.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/getOffset.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/openLink.tsx","packages/@react-aria/utils/src/packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDrag1D.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useObjectRef.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useUpdateEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useResizeObserver.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useSyncRef.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/getScrollParent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useEffectEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useValueEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/scrollIntoView.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/isVirtualEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDeepMemo.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useFormReset.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/index.ts","packages/@react-aria/utils/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nexport {useId, mergeIds, useSlotId} from './useId';\nexport {chain} from './chain';\nexport {getOwnerDocument, getOwnerWindow} from './domHelpers';\nexport {mergeProps} from './mergeProps';\nexport {mergeRefs} from './mergeRefs';\nexport {filterDOMProps} from './filterDOMProps';\nexport {focusWithoutScrolling} from './focusWithoutScrolling';\nexport {getOffset} from './getOffset';\nexport {openLink, getSyntheticLinkProps, RouterProvider, shouldClientNavigate, useRouter} from './openLink';\nexport {runAfterTransition} from './runAfterTransition';\nexport {useDrag1D} from './useDrag1D';\nexport {useGlobalListeners} from './useGlobalListeners';\nexport {useLabels} from './useLabels';\nexport {useObjectRef} from './useObjectRef';\nexport {useUpdateEffect} from './useUpdateEffect';\nexport {useLayoutEffect} from './useLayoutEffect';\nexport {useResizeObserver} from './useResizeObserver';\nexport {useSyncRef} from './useSyncRef';\nexport {getScrollParent, isScrollable} from './getScrollParent';\nexport {useViewportSize} from './useViewportSize';\nexport {useDescription} from './useDescription';\nexport {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid} from './platform';\nexport {useEvent} from './useEvent';\nexport {useValueEffect} from './useValueEffect';\nexport {scrollIntoView, scrollIntoViewport} from './scrollIntoView';\nexport {clamp, snapValueToStep} from '@react-stately/utils';\nexport {isVirtualClick, isVirtualPointerEvent} from './isVirtualEvent';\nexport {useEffectEvent} from './useEffectEvent';\nexport {useDeepMemo} from './useDeepMemo';\nexport {useFormReset} from './useFormReset';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-aria/utils/src/packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/domHelpers.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/mergeProps.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/mergeRefs.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/getOffset.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/openLink.tsx","packages/@react-aria/utils/src/packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDrag1D.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useObjectRef.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useUpdateEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useResizeObserver.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useSyncRef.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/getScrollParent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useEffectEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useValueEffect.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/scrollIntoView.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/isVirtualEvent.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useDeepMemo.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/useFormReset.ts","packages/@react-aria/utils/src/packages/@react-aria/utils/src/index.ts","packages/@react-aria/utils/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nexport {useId, mergeIds, useSlotId} from './useId';\nexport {chain} from './chain';\nexport {getOwnerDocument, getOwnerWindow} from './domHelpers';\nexport {mergeProps} from './mergeProps';\nexport {mergeRefs} from './mergeRefs';\nexport {filterDOMProps} from './filterDOMProps';\nexport {focusWithoutScrolling} from './focusWithoutScrolling';\nexport {getOffset} from './getOffset';\nexport {openLink, getSyntheticLinkProps, RouterProvider, shouldClientNavigate, useRouter} from './openLink';\nexport {runAfterTransition} from './runAfterTransition';\nexport {useDrag1D} from './useDrag1D';\nexport {useGlobalListeners} from './useGlobalListeners';\nexport {useLabels} from './useLabels';\nexport {useObjectRef} from './useObjectRef';\nexport {useUpdateEffect} from './useUpdateEffect';\nexport {useLayoutEffect} from './useLayoutEffect';\nexport {useResizeObserver} from './useResizeObserver';\nexport {useSyncRef} from './useSyncRef';\nexport {getScrollParent, isScrollable} from './getScrollParent';\nexport {useViewportSize} from './useViewportSize';\nexport {useDescription} from './useDescription';\nexport {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid, isFirefox} from './platform';\nexport {useEvent} from './useEvent';\nexport {useValueEffect} from './useValueEffect';\nexport {scrollIntoView, scrollIntoViewport} from './scrollIntoView';\nexport {clamp, snapValueToStep} from '@react-stately/utils';\nexport {isVirtualClick, isVirtualPointerEvent} from './isVirtualEvent';\nexport {useEffectEvent} from './useEffectEvent';\nexport {useDeepMemo} from './useDeepMemo';\nexport {useFormReset} from './useFormReset';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-aria/utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.23.1",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"url": "https://github.com/adobe/react-spectrum"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@react-aria/ssr": "^3.9.
|
|
25
|
+
"@react-aria/ssr": "^3.9.1",
|
|
26
26
|
"@react-stately/utils": "^3.9.0",
|
|
27
27
|
"@react-types/shared": "^3.22.0",
|
|
28
28
|
"@swc/helpers": "^0.5.0",
|
|
29
|
-
"clsx": "^
|
|
29
|
+
"clsx": "^2.0.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "f040ff62678e6a31375b96c05396df0bae660350"
|
|
38
38
|
}
|
|
@@ -38,12 +38,12 @@ export function focusWithoutScrolling(element: FocusableElement) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
let supportsPreventScrollCached: boolean = null;
|
|
41
|
+
let supportsPreventScrollCached: boolean | null = null;
|
|
42
42
|
function supportsPreventScroll() {
|
|
43
43
|
if (supportsPreventScrollCached == null) {
|
|
44
44
|
supportsPreventScrollCached = false;
|
|
45
45
|
try {
|
|
46
|
-
|
|
46
|
+
let focusElem = document.createElement('div');
|
|
47
47
|
focusElem.focus({
|
|
48
48
|
get preventScroll() {
|
|
49
49
|
supportsPreventScrollCached = true;
|
|
@@ -59,9 +59,9 @@ function supportsPreventScroll() {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
function getScrollableElements(element: FocusableElement): ScrollableElement[] {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
let parent = element.parentNode;
|
|
63
|
+
let scrollableElements: ScrollableElement[] = [];
|
|
64
|
+
let rootScrollingElement = document.scrollingElement || document.documentElement;
|
|
65
65
|
|
|
66
66
|
while (parent instanceof HTMLElement && parent !== rootScrollingElement) {
|
|
67
67
|
if (
|
package/src/getScrollParent.ts
CHANGED
|
@@ -10,19 +10,26 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
export function getScrollParent(node: Element): Element {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export function getScrollParent(node: Element, checkForOverflow?: boolean): Element {
|
|
14
|
+
let scrollableNode: Element | null = node;
|
|
15
|
+
if (isScrollable(scrollableNode, checkForOverflow)) {
|
|
16
|
+
scrollableNode = scrollableNode.parentElement;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
while (
|
|
19
|
-
|
|
19
|
+
while (scrollableNode && !isScrollable(scrollableNode, checkForOverflow)) {
|
|
20
|
+
scrollableNode = scrollableNode.parentElement;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
return
|
|
23
|
+
return scrollableNode || document.scrollingElement || document.documentElement;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
export function isScrollable(node: Element): boolean {
|
|
26
|
+
export function isScrollable(node: Element, checkForOverflow?: boolean): boolean {
|
|
26
27
|
let style = window.getComputedStyle(node);
|
|
27
|
-
|
|
28
|
+
let isScrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
|
|
29
|
+
|
|
30
|
+
if (isScrollable && checkForOverflow) {
|
|
31
|
+
isScrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return isScrollable;
|
|
28
35
|
}
|
package/src/index.ts
CHANGED
|
@@ -30,7 +30,7 @@ export {useSyncRef} from './useSyncRef';
|
|
|
30
30
|
export {getScrollParent, isScrollable} from './getScrollParent';
|
|
31
31
|
export {useViewportSize} from './useViewportSize';
|
|
32
32
|
export {useDescription} from './useDescription';
|
|
33
|
-
export {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid} from './platform';
|
|
33
|
+
export {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid, isFirefox} from './platform';
|
|
34
34
|
export {useEvent} from './useEvent';
|
|
35
35
|
export {useValueEffect} from './useValueEffect';
|
|
36
36
|
export {scrollIntoView, scrollIntoViewport} from './scrollIntoView';
|
package/src/mergeRefs.ts
CHANGED
package/src/openLink.tsx
CHANGED
|
@@ -116,21 +116,21 @@ function getSyntheticLink(target: Element, open: (link: HTMLAnchorElement) => vo
|
|
|
116
116
|
open(target);
|
|
117
117
|
} else if (target.hasAttribute('data-href')) {
|
|
118
118
|
let link = document.createElement('a');
|
|
119
|
-
link.href = target.getAttribute('data-href')
|
|
119
|
+
link.href = target.getAttribute('data-href')!;
|
|
120
120
|
if (target.hasAttribute('data-target')) {
|
|
121
|
-
link.target = target.getAttribute('data-target')
|
|
121
|
+
link.target = target.getAttribute('data-target')!;
|
|
122
122
|
}
|
|
123
123
|
if (target.hasAttribute('data-rel')) {
|
|
124
|
-
link.rel = target.getAttribute('data-rel')
|
|
124
|
+
link.rel = target.getAttribute('data-rel')!;
|
|
125
125
|
}
|
|
126
126
|
if (target.hasAttribute('data-download')) {
|
|
127
|
-
link.download = target.getAttribute('data-download')
|
|
127
|
+
link.download = target.getAttribute('data-download')!;
|
|
128
128
|
}
|
|
129
129
|
if (target.hasAttribute('data-ping')) {
|
|
130
|
-
link.ping = target.getAttribute('data-ping')
|
|
130
|
+
link.ping = target.getAttribute('data-ping')!;
|
|
131
131
|
}
|
|
132
132
|
if (target.hasAttribute('data-referrer-policy')) {
|
|
133
|
-
link.referrerPolicy = target.getAttribute('data-referrer-policy')
|
|
133
|
+
link.referrerPolicy = target.getAttribute('data-referrer-policy')!;
|
|
134
134
|
}
|
|
135
135
|
target.appendChild(link);
|
|
136
136
|
open(link);
|
|
@@ -26,7 +26,14 @@ function setupGlobalEvents() {
|
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
function isTransitionEvent(event: Event): event is TransitionEvent {
|
|
30
|
+
return 'propertyName' in event;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let onTransitionStart = (e: Event) => {
|
|
34
|
+
if (!isTransitionEvent(e) || !e.target) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
30
37
|
// Add the transitioning property to the list for this element.
|
|
31
38
|
let transitions = transitionsByElement.get(e.target);
|
|
32
39
|
if (!transitions) {
|
|
@@ -36,13 +43,18 @@ function setupGlobalEvents() {
|
|
|
36
43
|
// The transitioncancel event must be registered on the element itself, rather than as a global
|
|
37
44
|
// event. This enables us to handle when the node is deleted from the document while it is transitioning.
|
|
38
45
|
// In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
|
|
39
|
-
e.target.addEventListener('transitioncancel', onTransitionEnd
|
|
46
|
+
e.target.addEventListener('transitioncancel', onTransitionEnd, {
|
|
47
|
+
once: true
|
|
48
|
+
});
|
|
40
49
|
}
|
|
41
50
|
|
|
42
51
|
transitions.add(e.propertyName);
|
|
43
52
|
};
|
|
44
53
|
|
|
45
|
-
let onTransitionEnd = (e:
|
|
54
|
+
let onTransitionEnd = (e: Event) => {
|
|
55
|
+
if (!isTransitionEvent(e) || !e.target) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
46
58
|
// Remove property from list of transitioning properties.
|
|
47
59
|
let properties = transitionsByElement.get(e.target);
|
|
48
60
|
if (!properties) {
|
package/src/useDeepMemo.ts
CHANGED
|
@@ -17,7 +17,7 @@ import {useRef} from 'react';
|
|
|
17
17
|
export function useDeepMemo<T>(value: T, isEqual: (a: T, b: T) => boolean): T {
|
|
18
18
|
// Using a ref during render is ok here because it's only an optimization – both values are equivalent.
|
|
19
19
|
// If a render is thrown away, it'll still work the same no matter if the next render is the same or not.
|
|
20
|
-
let lastValue = useRef(null);
|
|
20
|
+
let lastValue = useRef<T | null>(null);
|
|
21
21
|
if (value && lastValue.current && isEqual(value, lastValue.current)) {
|
|
22
22
|
value = lastValue.current;
|
|
23
23
|
}
|
package/src/useDescription.ts
CHANGED
|
@@ -18,7 +18,7 @@ let descriptionId = 0;
|
|
|
18
18
|
const descriptionNodes = new Map<string, {refCount: number, element: Element}>();
|
|
19
19
|
|
|
20
20
|
export function useDescription(description?: string): AriaLabelingProps {
|
|
21
|
-
let [id, setId] = useState(
|
|
21
|
+
let [id, setId] = useState<string | undefined>();
|
|
22
22
|
|
|
23
23
|
useLayoutEffect(() => {
|
|
24
24
|
if (!description) {
|
|
@@ -43,7 +43,7 @@ export function useDescription(description?: string): AriaLabelingProps {
|
|
|
43
43
|
|
|
44
44
|
desc.refCount++;
|
|
45
45
|
return () => {
|
|
46
|
-
if (--desc.refCount === 0) {
|
|
46
|
+
if (desc && --desc.refCount === 0) {
|
|
47
47
|
desc.element.remove();
|
|
48
48
|
descriptionNodes.delete(description);
|
|
49
49
|
}
|
package/src/useEffectEvent.ts
CHANGED
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
import {useCallback, useRef} from 'react';
|
|
14
14
|
import {useLayoutEffect} from './useLayoutEffect';
|
|
15
15
|
|
|
16
|
-
export function useEffectEvent<T extends Function>(fn
|
|
17
|
-
const ref = useRef<T | null>(null);
|
|
16
|
+
export function useEffectEvent<T extends Function>(fn?: T): T {
|
|
17
|
+
const ref = useRef<T | null | undefined>(null);
|
|
18
18
|
useLayoutEffect(() => {
|
|
19
19
|
ref.current = fn;
|
|
20
20
|
}, [fn]);
|
|
21
21
|
// @ts-ignore
|
|
22
22
|
return useCallback<T>((...args) => {
|
|
23
23
|
const f = ref.current!;
|
|
24
|
-
return f(...args);
|
|
24
|
+
return f?.(...args);
|
|
25
25
|
}, []);
|
|
26
26
|
}
|
package/src/useEvent.ts
CHANGED
|
@@ -23,14 +23,14 @@ export function useEvent<K extends keyof GlobalEventHandlersEventMap>(
|
|
|
23
23
|
let isDisabled = handler == null;
|
|
24
24
|
|
|
25
25
|
useEffect(() => {
|
|
26
|
-
if (isDisabled) {
|
|
26
|
+
if (isDisabled || !ref.current) {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
let element = ref.current;
|
|
31
|
-
element.addEventListener(event, handleEvent, options);
|
|
31
|
+
element.addEventListener(event, handleEvent as EventListener, options);
|
|
32
32
|
return () => {
|
|
33
|
-
element.removeEventListener(event, handleEvent, options);
|
|
33
|
+
element.removeEventListener(event, handleEvent as EventListener, options);
|
|
34
34
|
};
|
|
35
35
|
}, [ref, event, options, isDisabled, handleEvent]);
|
|
36
36
|
}
|
package/src/useObjectRef.ts
CHANGED
|
@@ -15,14 +15,14 @@ import {MutableRefObject, useMemo, useRef} from 'react';
|
|
|
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
|
-
* React Aria
|
|
18
|
+
* React Aria hooks.
|
|
19
19
|
*
|
|
20
20
|
* @param forwardedRef The original ref intended to be used.
|
|
21
21
|
* @returns An object ref that updates the given ref.
|
|
22
22
|
* @see https://reactjs.org/docs/forwarding-refs.html
|
|
23
23
|
*/
|
|
24
|
-
export function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T> {
|
|
25
|
-
const objRef = useRef<T>();
|
|
24
|
+
export function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T | null> {
|
|
25
|
+
const objRef: MutableRefObject<T | null> = useRef<T>(null);
|
|
26
26
|
return useMemo(() => ({
|
|
27
27
|
get current() {
|
|
28
28
|
return objRef.current;
|
package/src/useSyncRef.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {MutableRefObject, RefObject} from 'react';
|
|
|
14
14
|
import {useLayoutEffect} from './';
|
|
15
15
|
|
|
16
16
|
interface ContextValue<T> {
|
|
17
|
-
ref?: MutableRefObject<T>
|
|
17
|
+
ref?: MutableRefObject<T | null>
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// Syncs ref from context with ref passed to hook
|
|
@@ -23,7 +23,9 @@ export function useSyncRef<T>(context?: ContextValue<T> | null, ref?: RefObject<
|
|
|
23
23
|
if (context && context.ref && ref) {
|
|
24
24
|
context.ref.current = ref.current;
|
|
25
25
|
return () => {
|
|
26
|
-
context.ref
|
|
26
|
+
if (context.ref) {
|
|
27
|
+
context.ref.current = null;
|
|
28
|
+
}
|
|
27
29
|
};
|
|
28
30
|
}
|
|
29
31
|
});
|
package/src/useValueEffect.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {Dispatch, useRef, useState} from 'react';
|
|
13
|
+
import {Dispatch, MutableRefObject, useRef, useState} from 'react';
|
|
14
14
|
import {useEffectEvent, useLayoutEffect} from './';
|
|
15
15
|
|
|
16
16
|
type SetValueAction<S> = (prev: S) => Generator<any, void, unknown>;
|
|
@@ -21,11 +21,14 @@ type SetValueAction<S> = (prev: S) => Generator<any, void, unknown>;
|
|
|
21
21
|
// written linearly.
|
|
22
22
|
export function useValueEffect<S>(defaultValue: S | (() => S)): [S, Dispatch<SetValueAction<S>>] {
|
|
23
23
|
let [value, setValue] = useState(defaultValue);
|
|
24
|
-
let effect = useRef(null);
|
|
24
|
+
let effect: MutableRefObject<Generator<S> | null> = useRef<Generator<S> | null>(null);
|
|
25
25
|
|
|
26
26
|
// Store the function in a ref so we can always access the current version
|
|
27
27
|
// which has the proper `value` in scope.
|
|
28
28
|
let nextRef = useEffectEvent(() => {
|
|
29
|
+
if (!effect.current) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
29
32
|
// Run the generator to the next yield.
|
|
30
33
|
let newValue = effect.current.next();
|
|
31
34
|
|
package/src/useViewportSize.ts
CHANGED
|
@@ -57,7 +57,7 @@ export function useViewportSize(): ViewportSize {
|
|
|
57
57
|
|
|
58
58
|
function getViewportSize(): ViewportSize {
|
|
59
59
|
return {
|
|
60
|
-
width: visualViewport?.width || window.innerWidth,
|
|
61
|
-
height: visualViewport?.height || window.innerHeight
|
|
60
|
+
width: (visualViewport && visualViewport?.width) || window.innerWidth,
|
|
61
|
+
height: (visualViewport && visualViewport?.height) || window.innerHeight
|
|
62
62
|
};
|
|
63
63
|
}
|