Files
wr.do/hooks/use-scroll.ts
2024-07-26 22:08:57 +08:00

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;
}