@@ -129,25 +129,20 @@ const NavMenu: React.FC = () => {
129129 : 0 ;
130130 } , [ loading ] ) ;
131131
132- const [ reportsMenuOpen , setReportsMenuOpen ] = useState ( false ) ;
133- const [ toolsMenuOpen , setToolsMenuOpen ] = useState ( false ) ;
132+ enum MenuId {
133+ Reports = 'reports' ,
134+ Tools = 'tools' ,
135+ RequestForms = 'requestForms' ,
136+ }
134137
135- const handleReportsMenuToggle = ( ) => {
136- setReportsMenuOpen ( ( prevOpen ) => ! prevOpen ) ;
137- handleToolsMenuClose ( ) ;
138- } ;
139-
140- const handleReportsMenuClose = ( ) => {
141- setReportsMenuOpen ( false ) ;
142- } ;
138+ const [ openMenu , setOpenMenu ] = useState < MenuId | null > ( null ) ;
143139
144- const handleToolsMenuToggle = ( ) => {
145- setToolsMenuOpen ( ( prevOpen ) => ! prevOpen ) ;
146- handleReportsMenuClose ( ) ;
140+ const handleMenuToggle = ( menu : MenuId ) => {
141+ setOpenMenu ( ( prev ) => ( prev === menu ? null : menu ) ) ;
147142 } ;
148143
149- const handleToolsMenuClose = ( ) => {
150- setToolsMenuOpen ( false ) ;
144+ const handleMenuClose = ( ) => {
145+ setOpenMenu ( null ) ;
151146 } ;
152147 const { pathname } = useRouter ( ) ;
153148
@@ -178,9 +173,9 @@ const NavMenu: React.FC = () => {
178173
179174 < NavMenuDropdown
180175 page = { navPages [ 3 ] }
181- menuOpen = { reportsMenuOpen }
182- handleMenuToggle = { handleReportsMenuToggle }
183- handleMenuClose = { handleReportsMenuClose }
176+ menuOpen = { openMenu === MenuId . Reports }
177+ handleMenuToggle = { ( ) => handleMenuToggle ( MenuId . Reports ) }
178+ handleMenuClose = { handleMenuClose }
184179 testId = "ReportMenuToggle"
185180 sum = { sum }
186181 toolData = { toolData }
@@ -189,16 +184,28 @@ const NavMenu: React.FC = () => {
189184 />
190185 < NavMenuDropdown
191186 page = { navPages [ 4 ] }
192- menuOpen = { toolsMenuOpen }
193- handleMenuToggle = { handleToolsMenuToggle }
194- handleMenuClose = { handleToolsMenuClose }
187+ menuOpen = { openMenu === MenuId . Tools }
188+ handleMenuToggle = { ( ) => handleMenuToggle ( MenuId . Tools ) }
189+ handleMenuClose = { handleMenuClose }
195190 testId = "ToolsMenuToggle"
196191 sum = { sum }
197192 toolData = { toolData }
198193 loading = { loading }
199194 isTool = { true }
200195 />
201196
197+ < NavMenuDropdown
198+ page = { navPages [ 5 ] }
199+ menuOpen = { openMenu === MenuId . RequestForms }
200+ handleMenuToggle = { ( ) => handleMenuToggle ( MenuId . RequestForms ) }
201+ handleMenuClose = { handleMenuClose }
202+ testId = "RequestFormsMenuToggle"
203+ sum = { sum }
204+ toolData = { toolData }
205+ loading = { loading }
206+ isTool = { false }
207+ />
208+
202209 { isCoaching && (
203210 < Grid item className = { classes . navListItem } >
204211 < MenuItem
0 commit comments