@@ -29,13 +29,28 @@ const menuItems: MenuItem[] = [
2929export default function Menu ( ) {
3030 const pathname = usePathname ( ) ;
3131 const [ isOpen , setIsOpen ] = useState ( false ) ;
32+ const [ isDesktop , setIsDesktop ] = useState ( false ) ;
3233
3334 useEffect ( ( ) => {
34- document . body . style . overflow = isOpen ? "hidden" : "" ;
35+ const handleResize = ( ) => {
36+ const desktop = window . innerWidth >= 640 ;
37+ setIsDesktop ( desktop ) ;
38+
39+ if ( desktop ) {
40+ setIsOpen ( false ) ;
41+ }
42+ } ;
43+
44+ handleResize ( ) ;
45+ window . addEventListener ( "resize" , handleResize ) ;
46+
47+ document . body . style . overflow = ! isDesktop && isOpen ? "hidden" : "" ;
48+
3549 return ( ) => {
50+ window . removeEventListener ( "resize" , handleResize ) ;
3651 document . body . style . overflow = "" ;
3752 } ;
38- } , [ isOpen ] ) ;
53+ } , [ isDesktop , isOpen ] ) ;
3954
4055 const isActive = ( href : string ) : boolean => {
4156 if ( href . startsWith ( "http" ) ) return false ;
@@ -58,10 +73,10 @@ export default function Menu() {
5873
5974 < nav
6075 id = "navigation"
61- className = { `${ isOpen ? "active-navigation" : "hidden" } fixed inset-0 z-50 flex-col items-center justify-start overflow-y-auto bg-black px-6 pt-24 pb-10 text-white sm:relative sm:inset -auto sm:z -auto sm:h- auto sm:w-9/12 sm:max-w-xl sm:flex sm:flex-row sm:items-center sm:justify-end sm:overflow-visible sm:bg-transparent sm:px-0 sm:pt-0 sm:pb-0 sm:text-inherit ` }
62- aria-hidden = { ! isOpen && pathname !== undefined }
76+ className = { `${ isOpen ? "active-navigation" : "hidden" } absolute items-center justify-center w-full h-screen bg-black top-0 left-0 text-white sm:relative sm:h -auto sm:top -auto sm:bg-transparent sm:left- auto sm:w-9/12 sm:max-w-xl sm:block ` }
77+ aria-hidden = { isDesktop ? false : ! isOpen }
6378 >
64- < div className = "absolute top-[27px] left-6 sm:hidden" >
79+ < div className = "absolute top-[27px] sm:hidden" >
6580 < Image
6681 src = "/images/Hiero-Icon-wLogo-white-text.svg"
6782 alt = "Hiero logo"
@@ -80,7 +95,7 @@ export default function Menu() {
8095 < Image src = "/images/Hiero-Icon-ModalClose.svg" alt = "Close menu" className = "w-5 h-5" width = { 20 } height = { 20 } />
8196 </ button >
8297
83- < ul id = "menu" className = "flex w-full flex-col items-stretch gap-2 pt-10 sm:w-auto sm: flex-row sm:items-center sm: justify-between sm:gap-8 sm:pt-0 " >
98+ < ul id = "menu" className = "flex flex-col sm:flex-row justify-between" >
8499 { menuItems . map ( ( item ) => (
85100 < li
86101 key = { item . name }
@@ -92,14 +107,14 @@ export default function Menu() {
92107 target = "_blank"
93108 rel = "noopener noreferrer"
94109 onClick = { ( ) => setIsOpen ( false ) }
95- className = "block rounded-md px-3 py-2 sm:inline sm:rounded-none sm:px-0 sm:py-0"
96110 >
97111 { item . name }
98112 </ a >
99113 ) : (
100114 < Link
101115 href = { item . href }
102- className = { `${ isActive ( item . href ) ? "active" : "" } block rounded-md px-3 py-2 sm:inline sm:rounded-none sm:px-0 sm:py-0` . trim ( ) }
116+ className = { isActive ( item . href ) ? "active" : "" }
117+ aria-current = { isActive ( item . href ) ? "page" : undefined }
103118 onClick = { ( ) => setIsOpen ( false ) }
104119 >
105120 { item . name }
@@ -108,12 +123,12 @@ export default function Menu() {
108123 </ li >
109124 ) ) }
110125
111- < li className = "mt-4 self-center sm:mt-0 " >
126+ < li className = "self-center" >
112127 < a
113128 href = "https://github.com/hiero-ledger/"
114129 target = "_blank"
115130 rel = "noopener noreferrer"
116- className = "flex justify-center rounded-md px-3 py-2 sm:px-0 sm:py-0 "
131+ className = "flex"
117132 >
118133 < Image
119134 src = "/images/Hiero-Icon-Github.svg"
0 commit comments