| 123456789101112131415161718192021222324252627282930 | import { inBrowser } from "../utils/index.mjs";import { onDeactivated, onBeforeUnmount } from "vue";import { onMountedOrActivated } from "@vant/use";function useVisibilityChange(target, onChange) {  if (!inBrowser || !window.IntersectionObserver) {    return;  }  const observer = new IntersectionObserver(    (entries) => {      onChange(entries[0].intersectionRatio > 0);    },    { root: document.body }  );  const observe = () => {    if (target.value) {      observer.observe(target.value);    }  };  const unobserve = () => {    if (target.value) {      observer.unobserve(target.value);    }  };  onDeactivated(unobserve);  onBeforeUnmount(unobserve);  onMountedOrActivated(observe);}export {  useVisibilityChange};
 |