16 lines
440 B
TypeScript
16 lines
440 B
TypeScript
import { useCallback, useEffect, useState } from 'react'
|
|
|
|
export default function useScroll(threshold: number) {
|
|
const [scrolled, setScrolled] = useState(false)
|
|
|
|
const onScroll = useCallback(() => {
|
|
setScrolled(window.pageYOffset > threshold)
|
|
}, [threshold])
|
|
|
|
useEffect(() => {
|
|
window.addEventListener('scroll', onScroll)
|
|
return () => window.removeEventListener('scroll', onScroll)
|
|
}, [onScroll])
|
|
|
|
return scrolled
|
|
}
|