{"version":3,"file":"index.js","names":["c","_c","React","useIntersect","RenderIfInViewport","t0","$","children","className","forceRender","hasRendered","setHasRendered","useState","Boolean","t1","Symbol","for","rootMargin","intersectionRef","entry","isIntersecting","isAboveViewport","boundingClientRect","top","shouldRender","t2","t3","useEffect","t4","t5","_jsx","ref"],"sources":["../../../src/elements/RenderIfInViewport/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\n\nexport const RenderIfInViewport: React.FC<\n {\n children: React.ReactNode\n className?: string\n } & Pick\n> = ({ children, className, forceRender }) => {\n const [hasRendered, setHasRendered] = React.useState(Boolean(forceRender))\n const [intersectionRef, entry] = useIntersect(\n {\n rootMargin: '1000px',\n },\n Boolean(forceRender),\n )\n\n const isIntersecting = Boolean(entry?.isIntersecting)\n const isAboveViewport = entry?.boundingClientRect?.top < 0\n const shouldRender = forceRender || isIntersecting || isAboveViewport\n\n React.useEffect(() => {\n if (shouldRender && !hasRendered) {\n setHasRendered(true)\n }\n }, [shouldRender, hasRendered])\n\n return (\n
\n {hasRendered ? children : null}\n
\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,kBAAA,GAKTC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,QAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAJ,EAAoC;EACvC,OAAAK,WAAA,EAAAC,cAAA,IAAsCT,KAAA,CAAAU,QAAA,CAAeC,OAAA,CAAQJ,WAAA;EAAA,IAAAK,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IAE3DF,EAAA;MAAAG,UAAA,EACc;IAAA;IACdX,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAHF,OAAAY,eAAA,EAAAC,KAAA,IAAiChB,YAAA,CAC/BW,EAEA,EACAD,OAAA,CAAQJ,WAAA;EAGV,MAAAW,cAAA,GAAuBP,OAAA,CAAQM,KAAA,EAAAC,cAAO;EACtC,MAAAC,eAAA,GAAwBF,KAAA,EAAAG,kBAAA,EAAAC,GAAA,IAAiC;EACzD,MAAAC,YAAA,GAAqBf,WAAA,IAAeW,cAAA,IAAkBC,eAAA;EAAA,IAAAI,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAApB,CAAA,QAAAI,WAAA,IAAAJ,CAAA,QAAAkB,YAAA;IAEtCC,EAAA,GAAAA,CAAA;MAAA,IACVD,YAAA,KAAiBd,WAAA;QACnBC,cAAA,KAAe;MAAA;IAAA;IAEhBe,EAAA,IAACF,YAAA,EAAcd,WAAA;IAAYJ,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAkB,YAAA;IAAAlB,CAAA,MAAAmB,EAAA;IAAAnB,CAAA,MAAAoB,EAAA;EAAA;IAAAD,EAAA,GAAAnB,CAAA;IAAAoB,EAAA,GAAApB,CAAA;EAAA;EAJ9BJ,KAAA,CAAAyB,SAAA,CAAgBF,EAIhB,EAAGC,EAA2B;EAIzB,MAAAE,EAAA,GAAAlB,WAAA,GAAcH,QAAA,OAAW;EAAA,IAAAsB,EAAA;EAAA,IAAAvB,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAY,eAAA,IAAAZ,CAAA,QAAAsB,EAAA;IAD5BC,EAAA,GAAAC,IAAA,CAAC;MAAAtB,SAAA;MAAAuB,GAAA,EAA+Bb,eAAA;MAAAX,QAAA,EAC7BqB;IAAyB,C;;;;;;;;SAD5BC,E;CAIJ","ignoreList":[]}