Files
patchy631--ai-engineering-hub/open-agent-builder/utils/on-visible.ts
T
2026-07-13 12:37:47 +08:00

30 lines
571 B
TypeScript

const onVisible = (
element: HTMLElement,
callback: () => void,
threshold = 0.1,
) => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
callback();
observer.disconnect();
}
},
{ threshold },
);
observer.observe(element);
return () => {
observer.disconnect();
};
};
export default onVisible;
export const waitUntilVisible = (element: HTMLElement, threshold = 0.1) => {
return new Promise((resolve) => {
onVisible(element, () => resolve(true), threshold);
});
};