feat: Update to API references look and feel (#343)
Co-authored-by: Vadim Smirnov <smirnou.vadzim@gmail.com> Co-authored-by: zakariasaad <zakaria.elas@gmail.com> Co-authored-by: Vilfred Sikker <vilfredsikker@gmail.com> Co-authored-by: olivermrbl <oliver@mrbltech.com>
This commit is contained in:
co-authored by
Vadim Smirnov
zakariasaad
Vilfred Sikker
olivermrbl
parent
40400b483c
commit
143f06aa39
@@ -0,0 +1,29 @@
|
||||
import { useEffect, useRef, useState } from "react"
|
||||
|
||||
const useInView = options => {
|
||||
const containerRef = useRef(null)
|
||||
const [isInView, setIsInView] = useState(false)
|
||||
|
||||
const callback = entries => {
|
||||
const [entry] = entries
|
||||
setIsInView(entry.isIntersecting)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
const ref = containerRef.current
|
||||
const observer = new IntersectionObserver(callback, options)
|
||||
if (ref) {
|
||||
observer.observe(ref)
|
||||
}
|
||||
|
||||
return () => {
|
||||
if (ref) {
|
||||
observer.unobserve(ref)
|
||||
}
|
||||
}
|
||||
}, [containerRef, options])
|
||||
|
||||
return [containerRef, isInView]
|
||||
}
|
||||
|
||||
export default useInView
|
||||
Reference in New Issue
Block a user