2023-06-02 15:33:48 -04:00
|
|
|
import { useCallback, useEffect, useState } from 'react'
|
2023-05-19 12:33:56 -04:00
|
|
|
|
|
|
|
|
export default function useScroll(threshold: number) {
|
2023-06-02 15:33:48 -04:00
|
|
|
const [scrolled, setScrolled] = useState(false)
|
2023-05-19 12:33:56 -04:00
|
|
|
|
|
|
|
|
const onScroll = useCallback(() => {
|
2023-06-02 15:33:48 -04:00
|
|
|
setScrolled(window.pageYOffset > threshold)
|
|
|
|
|
}, [threshold])
|
2023-05-19 12:33:56 -04:00
|
|
|
|
|
|
|
|
useEffect(() => {
|
2023-06-02 15:33:48 -04:00
|
|
|
window.addEventListener('scroll', onScroll)
|
|
|
|
|
return () => window.removeEventListener('scroll', onScroll)
|
|
|
|
|
}, [onScroll])
|
2023-05-19 12:33:56 -04:00
|
|
|
|
2023-06-02 15:33:48 -04:00
|
|
|
return scrolled
|
2023-05-19 12:33:56 -04:00
|
|
|
}
|