File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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' >
You can’t perform that action at this time.
0 commit comments