|
@@ -100,17 +100,16 @@ function PdfPage({ document, page, requested: initiallyRequested, onVisible, sig
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
let disposed = false
|
|
let disposed = false
|
|
|
- let observer: IntersectionObserver | undefined
|
|
|
|
|
- observer = new IntersectionObserver((entries) => {
|
|
|
|
|
|
|
+ const observer = new IntersectionObserver((entries) => {
|
|
|
if (disposed || !entries.some(entry => entry.isIntersecting)) return
|
|
if (disposed || !entries.some(entry => entry.isIntersecting)) return
|
|
|
setRequested(true)
|
|
setRequested(true)
|
|
|
onVisible(page)
|
|
onVisible(page)
|
|
|
- observer?.disconnect()
|
|
|
|
|
|
|
+ observer.disconnect()
|
|
|
}, { rootMargin: '100% 0px' })
|
|
}, { rootMargin: '100% 0px' })
|
|
|
observer.observe(node)
|
|
observer.observe(node)
|
|
|
return () => {
|
|
return () => {
|
|
|
disposed = true
|
|
disposed = true
|
|
|
- observer?.disconnect()
|
|
|
|
|
|
|
+ observer.disconnect()
|
|
|
}
|
|
}
|
|
|
}, [page, onVisible])
|
|
}, [page, onVisible])
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|