UNPKG

@assistant-ui/react

Version:

React components for AI chat.

44 lines 1.35 kB
// src/utils/hooks/useOnResizeContent.tsx import { useCallbackRef } from "@radix-ui/react-use-callback-ref"; import { useCallback } from "react"; import { useManagedRef } from "./useManagedRef.mjs"; var useOnResizeContent = (callback) => { const callbackRef = useCallbackRef(callback); const refCallback = useCallback( (el) => { const resizeObserver = new ResizeObserver(() => { callbackRef(); }); const mutationObserver = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node instanceof Element) { resizeObserver.observe(node); } } for (const node of mutation.removedNodes) { if (node instanceof Element) { resizeObserver.unobserve(node); } } } callbackRef(); }); resizeObserver.observe(el); mutationObserver.observe(el, { childList: true }); for (const child of el.children) { resizeObserver.observe(child); } return () => { resizeObserver.disconnect(); mutationObserver.disconnect(); }; }, [callbackRef] ); return useManagedRef(refCallback); }; export { useOnResizeContent }; //# sourceMappingURL=useOnResizeContent.mjs.map