import { type RefObject, useEffect } from 'react'; import ResizeObserver from 'resize-observer-polyfill'; interface Props { onResize: ResizeObserverCallback; ref: RefObject; } const useResizeObserver = ({ ref, onResize }: Props): void => { useEffect(() => { const ro = new ResizeObserver(onResize); const element = ref?.current as Element; ro.observe(element); return (): void => { ro.unobserve(element); }; }, [onResize, ref?.current]); }; export default useResizeObserver;