UNPKG

@mornya/react-image-libs

Version:
1 lines 1.45 kB
var s=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,s,o=t.call(e),u=[];try{for(;(void 0===r||0<r--)&&!(n=o.next()).done;)u.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return u},o=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.IntersectObserverProvider=exports.IntersectObserverContext=void 0,exports.useIntersectObserver=function useIntersectObserver(){return(0,u.useContext)(exports.IntersectObserverContext)},require("react/jsx-runtime")),u=require("react"),i=require("./ImageObserver");exports.IntersectObserverContext=(0,u.createContext)({subscribe:function(){console.error("To use components such as <LazyImage> or <LazyBackground>, must be initialized the provider: <IntersectObserverProvider>.")},unsubscribe:function(){}});exports.IntersectObserverProvider=function(e){var r=s((0,u.useState)(),2),n=r[0],t=r[1];return(0,u.useEffect)(function(){return n||t(new i.ImageObserver.Provider(e.option)),function(){null!=n&&n.destroy()}},[n,e.option]),(0,o.jsx)(exports.IntersectObserverContext.Provider,{value:{subscribe:function(e,r,t){n&&(t?n.subscribeOnce(e,r):(t=n.subscribe(e,r),e.addEventListener("unsubscribeImageObserverItem",t,{once:!0,capture:!1})))},unsubscribe:function(e){n&&(e.dispatchEvent(new CustomEvent("unsubscribeImageObserverItem")),n.unsubscribe(e))}},children:n?e.children:null})};