Skip to content

Commit bedeb3f

Browse files
authored
Merge pull request #737 from Akshay1833/navbar-changes
added navbar scroll detection
2 parents b879167 + 611d343 commit bedeb3f

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

components/layout/Header.tsx

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,28 @@ const Header = () => {
3232
git: null,
3333
roadmap: null,
3434
})
35+
const [isVisible, setIsVisible] = useState(true);
36+
const lastScrollY = useRef(0);
37+
38+
useEffect(() => {
39+
const handleScroll = () => {
40+
const currentScrollY = window.scrollY;
41+
42+
if (currentScrollY > lastScrollY.current && currentScrollY > 50) {
43+
setIsVisible(false);
44+
} else {
45+
setIsVisible(true);
46+
}
47+
48+
lastScrollY.current = currentScrollY;
49+
}
50+
51+
window.addEventListener('scroll', handleScroll);
52+
53+
return () => {
54+
window.removeEventListener('scroll', handleScroll);
55+
}
56+
}, []);
3557

3658
useEffect(() => {
3759
fetch('/api/repo-stats')
@@ -59,6 +81,8 @@ const Header = () => {
5981
}
6082
}, [router])
6183

84+
85+
6286
const toggleSideNav = () => {
6387
setIsOpen(!isOpen)
6488
}
@@ -144,7 +168,7 @@ const Header = () => {
144168
}
145169

146170
return (
147-
<nav className='border-b border-gray-200 bg-gray-100 shadow-md dark:border-gray-900'>
171+
<nav className={`border-b border-gray-200 bg-gray-100 shadow-md dark:border-gray-900 sticky top-0 transition-transform duration-300 ${isVisible ? 'translate-y-0' : '-translate-y-full'}`}>
148172
<div className='modern-container'>
149173
<div className='flex h-16 items-center justify-between'>
150174
<div className='flex items-center space-x-8'>

0 commit comments

Comments
 (0)