1
1
import { sendGAEvent } from "@next/third-parties/google"
2
- import { Fragment , useEffect , useState } from "react"
2
+ import { Fragment , useEffect , useLayoutEffect , useState } from "react"
3
3
4
4
import { Box , Collapse , List , Stack } from "@mui/material"
5
5
import { styled } from "@mui/system"
@@ -39,14 +39,22 @@ const MobileHeader = ({ currentMenu }) => {
39
39
setActiveCollapse ( currentMenu [ 1 ] )
40
40
} , [ currentMenu ] )
41
41
42
- const toggleDrawer = isOpen => {
43
- setOpen ( isOpen )
44
- if ( isOpen ) {
42
+ useLayoutEffect ( ( ) => {
43
+ if ( open ) {
45
44
window . document . body . classList . add ( "mobile-top-nav-open" )
46
45
} else {
47
46
window . document . body . classList . remove ( "mobile-top-nav-open" )
48
- setActiveCollapse ( currentMenu [ 1 ] )
49
47
}
48
+ } , [ open ] )
49
+
50
+ const handleCloseMobileHeader = ( ) => {
51
+ if ( open ) {
52
+ setOpen ( false )
53
+ }
54
+ }
55
+
56
+ const handleToggleMobileHeader = ( ) => {
57
+ setOpen ( ! open )
50
58
}
51
59
52
60
const toggleCollapse = collapse => {
@@ -58,7 +66,6 @@ const MobileHeader = ({ currentMenu }) => {
58
66
label,
59
67
device : "mobile" ,
60
68
} )
61
- toggleDrawer ( false )
62
69
}
63
70
64
71
const renderList = ( ) => (
@@ -133,7 +140,7 @@ const MobileHeader = ({ currentMenu }) => {
133
140
>
134
141
< Stack sx = { { height : "6.4rem" , px : "2rem" , lineHeight : "3rem" } } direction = "row" justifyContent = "space-between" alignItems = "center" >
135
142
< Link href = "/" className = "flex" >
136
- < Box onClick = { ( ) => toggleDrawer ( false ) } >
143
+ < Box onClick = { handleCloseMobileHeader } >
137
144
< Logo light = { dark } />
138
145
</ Box >
139
146
</ Link >
@@ -154,7 +161,7 @@ const MobileHeader = ({ currentMenu }) => {
154
161
transform : "rotate(-45deg) translate(5px, -5px)" ,
155
162
} ,
156
163
} }
157
- onClick = { ( ) => toggleDrawer ( ! open ) }
164
+ onClick = { handleToggleMobileHeader }
158
165
className = { open ? "active" : "" }
159
166
>
160
167
< Bar dark = { dark } > </ Bar >
0 commit comments