solid-laze
Version:
Lazily render components in Solid
2 lines (1 loc) • 900 B
JavaScript
;var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var L=(e,r)=>{for(var t in r)c(e,t,{get:r[t],enumerable:!0})},T=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of d(r))!x.call(e,n)&&n!==t&&c(e,n,{get:()=>r[n],enumerable:!(o=v(r,n))||o.enumerable});return e};var m=e=>T(c({},"__esModule",{value:!0}),e);var p={};L(p,{default:()=>a});module.exports=m(p);var s=require("solid-js");function a(e){let[r,t]=(0,s.createSignal)(!1),[o,n]=(0,s.createSignal)(null);return(0,s.createEffect)(()=>{t(!1);let i=e==null?void 0:e.refresh,l=o();if(!l)return;let f=new IntersectionObserver(b=>{for(let u of b)i?t(u.isIntersecting):u.isIntersecting&&(t(!0),f.disconnect())});f.observe(l),(0,s.onCleanup)(()=>{f.unobserve(l),f.disconnect()})}),{ref(i){return n(()=>i)},get visible(){return r()}}}