Files
actual/packages/desktop-client/src/hooks/useResizeObserver.ts

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;
}