@assistant-ui/react
Version:
Open-source TypeScript/React library for building production-grade AI chat experiences
37 lines (36 loc) • 1.08 kB
JavaScript
"use client";
// src/primitives/thread/topAnchor/createReserveObservers.ts
const createReserveObservers = (onChange) => {
const resizeObserver = new ResizeObserver(onChange);
const mutationObserver = new MutationObserver(onChange);
let observedViewport = null;
let observedAnchor = null;
let observedTarget = null;
const disconnect = () => {
resizeObserver.disconnect();
mutationObserver.disconnect();
observedViewport = null;
observedAnchor = null;
observedTarget = null;
};
return {
target: (viewport, anchor, target) => {
if (observedViewport === viewport && observedAnchor === anchor && observedTarget === target) return;
disconnect();
resizeObserver.observe(viewport);
resizeObserver.observe(anchor);
resizeObserver.observe(target);
mutationObserver.observe(target, {
childList: true,
subtree: true,
characterData: true
});
observedViewport = viewport;
observedAnchor = anchor;
observedTarget = target;
},
disconnect
};
};
export { createReserveObservers };
//# sourceMappingURL=createReserveObservers.js.map