mirror of
https://github.com/actualbudget/actual.git
synced 2026-04-29 19:14:22 -05:00
22 lines
513 B
TypeScript
22 lines
513 B
TypeScript
import { useRef, useCallback } from 'react';
|
|
|
|
export default function useResizeObserver(
|
|
func: (contentRect: DOMRectReadOnly) => void,
|
|
): (el: unknown) => void {
|
|
let observer = useRef(null);
|
|
if (!observer.current) {
|
|
observer.current = new ResizeObserver(entries => {
|
|
func(entries[0].contentRect);
|
|
});
|
|
}
|
|
|
|
let elementRef = useCallback(el => {
|
|
observer.current.disconnect();
|
|
if (el) {
|
|
observer.current.observe(el, { box: 'border-box' });
|
|
}
|
|
}, []);
|
|
|
|
return elementRef;
|
|
}
|