Skip to content

Commit 1895d70

Browse files
committed
Revert Fix useResizeObserver loop limit exceeded warning (#2891)
1 parent 4a75768 commit 1895d70

File tree

2 files changed

+5
-72
lines changed

2 files changed

+5
-72
lines changed

packages/@react-aria/utils/src/useResizeObserver.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {RefObject, useEffect, useRef} from 'react';
1+
import {RefObject, useEffect} from 'react';
22

33
function hasResizeObserver() {
44
return typeof window.ResizeObserver !== 'undefined';
@@ -11,7 +11,6 @@ type useResizeObserverOptionsType<T> = {
1111

1212
export function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>) {
1313
const {ref, onResize} = options;
14-
let raf = useRef(null);
1514

1615
useEffect(() => {
1716
let element = ref?.current;
@@ -25,28 +24,17 @@ export function useResizeObserver<T extends Element>(options: useResizeObserverO
2524
window.removeEventListener('resize', onResize, false);
2625
};
2726
} else {
27+
2828
const resizeObserverInstance = new window.ResizeObserver((entries) => {
29-
if (raf.current) {
29+
if (!entries.length) {
3030
return;
3131
}
32-
// avoid Error - ResizeObserver loop limit exceeded
33-
// it's ok to use a raf, ResizeObservers are already async and now we're just debouncing on frames
34-
raf.current = window.requestAnimationFrame(() => {
35-
raf.current = null;
36-
if (!Array.isArray(entries) || !entries.length) {
37-
return;
38-
}
39-
onResize();
40-
});
41-
});
4232

33+
onResize();
34+
});
4335
resizeObserverInstance.observe(element);
4436

4537
return () => {
46-
if (raf.current) {
47-
window.cancelAnimationFrame(raf.current);
48-
raf.current = null;
49-
}
5038
if (element) {
5139
resizeObserverInstance.unobserve(element);
5240
}

packages/@react-aria/utils/stories/useResizeObserver.stories.tsx

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)