@opencloud-eu/design-system
Version:
OpenCloud Design System is used to design OpenCloud UI components
2 lines (1 loc) • 475 B
JavaScript
;const e=require("vue"),v=({target:n,mode:t="show",rootMargin:o="100px",onVisibleCallback:i})=>{if(!(window&&"IntersectionObserver"in window))return{isVisible:e.ref(!0)};const s=e.ref(!1),r=new IntersectionObserver(u=>{const c=u.at(-1).isIntersecting;s.value=c,e.unref(s)&&i&&i(),t!=="showHide"&&s.value&&r.unobserve(n.value)},{rootMargin:o});return e.watch(n,()=>{r.observe(n.value)}),e.onBeforeUnmount(()=>r.disconnect()),{isVisible:s}};exports.useIsVisible=v;