Scroll listener properly cleaned
Review this React TypeScript scroll hook.
What a strong answer looks like
Separate real bugs from style. Rank issues by severity, point at the root cause rather than the symptom, and suggest a concrete fix, specific and kind.
0:00 of about 22 min
Mark a line and say what kind of problem it is.0 findings
1function useScrollDirection() {
2 const [dir, setDir] = useState<'up' | 'down'>('up');
3 const last = useRef(0);
4
5 useEffect(() => {
6 const onScroll = () => {
7 const y = window.scrollY;
8 setDir(y > last.current ? 'down' : 'up');
9 last.current = y;
10 };
11 window.addEventListener('scroll', onScroll, { passive: true });
12 return () => window.removeEventListener('scroll', onScroll);
13 }, []);
14
15 return dir;
16}
Which questions mattered is sealed until you submit. Telling you now would just be handing over the edge cases.
Run or narrate your approach, then ask the coach.