{"version":3,"file":"useInView-BnrBfwY7-chunk.js","sources":["../../../GSDClient/Scripts/Hooks/useInView.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nconst useInView = (\n ref: React.RefObject,\n quickDetect: boolean = false\n) => {\n const [inView, setInView] = useState(false);\n const [boundingClientRect, setBoundingClientRect] =\n useState(null);\n\n useEffect(() => {\n if (!ref.current) return;\n\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n setInView(\n quickDetect\n ? entry.isIntersecting\n : entry.isIntersecting &&\n entry.intersectionRatio === 1\n );\n setBoundingClientRect(entry.boundingClientRect);\n });\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: quickDetect ? 0.1 : 1.0,\n }\n );\n\n observer.observe(ref.current);\n\n return () => {\n observer.disconnect();\n };\n }, [ref]);\n\n return { inView, boundingClientRect };\n};\n\nexport default useInView;\n"],"names":["useInView","ref","quickDetect","inView","setInView","useState","boundingClientRect","setBoundingClientRect","useEffect","observer","entries","entry"],"mappings":"+CAEA,MAAMA,EAAY,CACdC,EACAC,EAAuB,KACtB,CACD,KAAM,CAACC,EAAQC,CAAS,EAAIC,WAAS,EAAK,EACpC,CAACC,EAAoBC,CAAqB,EAC5CF,WAAyB,IAAI,EAEjCG,OAAAA,EAAAA,UAAU,IAAM,CACR,GAAA,CAACP,EAAI,QAAS,OAElB,MAAMQ,EAAW,IAAI,qBACNC,GAAA,CACPA,EAAQ,QAAiBC,GAAA,CACrBP,EACIF,EACMS,EAAM,eACNA,EAAM,gBACFA,EAAM,oBAAsB,CAAA,EAE1CJ,EAAsBI,EAAM,kBAAkB,CAAA,CACjD,CACL,EACA,CACI,KAAM,KACN,WAAY,MACZ,UAAWT,EAAc,GAAM,CACnC,CAAA,EAGK,OAAAO,EAAA,QAAQR,EAAI,OAAO,EAErB,IAAM,CACTQ,EAAS,WAAW,CAAA,CACxB,EACD,CAACR,CAAG,CAAC,EAED,CAAE,OAAAE,EAAQ,mBAAAG,EACrB"}