Files
echo-nexus/node_modules/@react-hook/intersection-observer/dist/esm/index.mjs
T

3 lines
1.6 KiB
JavaScript

function r(r){var{root:e}=r,t=function(r,e){if(null==r)return{};var t,n,o={},i=Object.keys(r);for(n=0;n<i.length;n++)t=i[n],0>e.indexOf(t)&&(o[t]=r[t]);return o}(r,["root"]),n=JSON.stringify(t),i=o.get(e);return i||(i={},o.set(e,i)),i[n]?i[n]:i[n]=function(r){var{root:e=null,pollInterval:t=null,useMutationObserver:n=0,rootMargin:o="0px 0px 0px 0px",threshold:i=0}=r,s=new Set;if("undefined"==typeof IntersectionObserver)return null;var l=new IntersectionObserver(r=>{for(var e of s)e(r,l)},{root:e,rootMargin:o,threshold:i});return l.POLL_INTERVAL=t,l.USE_MUTATION_OBSERVER=n,{observer:l,getListeners:()=>s,subscribe:r=>s.add(r),unsubscribe:r=>s.delete(r)}}(r)}import"intersection-observer";import{useState as e,useEffect as t}from"react";import n from"@react-hook/passive-layout-effect";var o=new Map;export default function(o,i){void 0===i&&(i={});var{root:s=null,pollInterval:l=null,useMutationObserver:u=0,rootMargin:a="0px 0px 0px 0px",threshold:v=0,initialIsIntersecting:c=0}=i,[b,f]=e(()=>({boundingClientRect:null,intersectionRatio:0,intersectionRect:null,isIntersecting:c,rootBounds:null,target:null,time:0})),[p,g]=e(()=>r({root:s,pollInterval:l,useMutationObserver:u,rootMargin:a,threshold:v}));return t(()=>{var e=r({root:s,pollInterval:l,useMutationObserver:u,rootMargin:a,threshold:v});g(e)},[s,a,l,u,JSON.stringify(v)]),n(()=>{var r=o&&"current"in o?o.current:o;if(p&&r){var e=0;p.observer.observe(r);var t=t=>{if(!e)for(var n=0;n<t.length;n++){var o=t[n];o.target===r&&f(o)}};return p.subscribe(t),()=>{e=1,p.observer.unobserve(r),p.unsubscribe(t)}}},[o,p]),b}
//# sourceMappingURL=index.mjs.map