From a27a1e8373d1f25bb6aa145f47b4738dce4a4796 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Wed, 2 Apr 2025 00:00:12 -0500 Subject: [PATCH] Resolve circular dependency in useScrollDirection --- src/utility/useScrollDirection.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/utility/useScrollDirection.ts b/src/utility/useScrollDirection.ts index 98cbcab0..d6d7fdda 100644 --- a/src/utility/useScrollDirection.ts +++ b/src/utility/useScrollDirection.ts @@ -1,21 +1,21 @@ import { useEffect, useState } from 'react'; export default function useScrollDirection() { - const [lastScrollY, setLastScrollY] = useState(0); - const [scrollDirection, setScrollDirection] = useState<'up' | 'down'>('down'); + const [scrollInfo, setScrollInfo] = useState({ + scrollDirection: 'down' as 'up' | 'down', + lastScrollY: 0, + }); useEffect(() => { const handleScroll = () => { - setScrollDirection(window.scrollY > lastScrollY ? 'down' : 'up'); - setLastScrollY(window.scrollY); + setScrollInfo(prev => ({ + scrollDirection: window.scrollY > prev.lastScrollY ? 'down' : 'up', + lastScrollY: window.scrollY, + })); }; - window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); - }, [lastScrollY]); + }, []); - return { - scrollDirection, - lastScrollY, - }; + return scrollInfo; }