chatbot-template/lib/hooks/use-scroll.ts

17 lines
440 B
TypeScript
Raw Normal View History

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
}