17 lines
440 B
TypeScript
17 lines
440 B
TypeScript
import { useCallback, useEffect, useState } from "react";
|
|
|
|
export 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;
|
|
}
|