UNPKG

@lanaco/lnc-react-ui

Version:

React component library

5 lines (4 loc) 856 B
"use strict";const d=require("react/jsx-runtime"),t=require("react"),l=require("./index-BPVoEhTF.cjs"),a=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),p=require("./useUpdateEffect-BtMgpgIV.cjs"),m=s=>{const[i,n]=t.useState(!1),e=t.useMemo(()=>new IntersectionObserver(([r])=>n(r.isIntersecting)),[]);return t.useEffect(()=>(e.observe(s.current),()=>{e.disconnect()}),[s,e]),i},I=a.newStyled.div` min-height: 1px; ${s=>s.isHorizontal===!0?"min-width: 1px; width: 1px;":"width: 100%;"} `,u=t.forwardRef((s,i)=>{const{onIsVisible:n=()=>{},onIsNotVisible:e,isHorizontal:r=!1,className:f=""}=s,o=t.useRef(null),c=m(o);return p.useUpdateEffect(()=>{c?n():e==null||e()},[c]),d.jsx(I,{ref:o,className:`scroller-element ${f}`,isHorizontal:r})});u.propTypes={onIsVisible:l.PropTypes.func,isHorizontal:l.PropTypes.bool};exports.InfiniteScrollEndElement=u;