@lanaco/lnc-react-ui
Version:
React component library
5 lines (4 loc) • 746 B
JavaScript
;const u=require("react/jsx-runtime"),s=require("react"),f=require("./emotion-styled.browser.esm-DwHBgTPn.cjs"),d=require("./useUpdateEffect-BtMgpgIV.cjs"),a=t=>{const[i,n]=s.useState(!1),e=s.useMemo(()=>new IntersectionObserver(([r])=>n(r.isIntersecting)),[]);return s.useEffect(()=>(e.observe(t.current),()=>{e.disconnect()}),[t,e]),i},m=f.styled.div`
min-height: 1px;
${t=>t.isHorizontal===!0?"min-width: 1px; width: 1px;":"width: 100%;"}
`,I=s.forwardRef((t,i)=>{const{onIsVisible:n=()=>{},onIsNotVisible:e,isHorizontal:r=!1,className:l=""}=t,c=s.useRef(null),o=a(c);return d.useUpdateEffect(()=>{o?n():e==null||e()},[o]),u.jsx(m,{ref:c,className:`scroller-element ${l}`,isHorizontal:r})});exports.InfiniteScrollEndElement=I;